Search code examples
silverlightwcf-ria-servicessilverlight-5.0

.Net WCF RIA Services parameterized NameValue method crashing


I added a RIA Domain Service method to return a simple NameValuePair of two properties from a table (and filtered on a key value).

It compiles fine, but blows up every time without giving a useful error.

What am I missing? (probably something really obvious)

e.g.:

    public IQueryable<NameValuePair> GetNameValues(int keyId)
    {
        // NOTE: I can breakpoint here and the correct keyId is passed
        // it blows up on returning from this method
        return from p in this.ObjectContext.NameTable
                where p.KeyId == keyId
                select new NameValuePair(p.NameValue, p.NameType);
    }

Simple NameValuePair Code:

public class NameValuePair
{
    [Key]
    public string Name { get; set; }
    public string Value { get; set; }

    public NameValuePair()
    {
    }

    public NameValuePair( string name, string value)
    {
        this.Name = name;
        this.Value = value;
    }
}

Update:

I tried returning a query on a static list of NameValuePair objects and that works fine (but is not useful).


Solution

  • I tried this here and got the error: base {System.SystemException} = {"Only parameterless constructors and initializers are supported in LINQ to Entities."} So you have to change it to create the object first, then pass the property values:

    public IQueryable<NameValuePair> GetNameValues(int keyId)
    {
        return from p in this.ObjectContext.NameTable
                where p.KeyId == keyId
                select new NameValuePair {Name = p.NameValue, Value = p.NameType};
    }