0

RIA ドメイン サービス メソッドを追加して、テーブルから 2 つのプロパティの単純な NameValuePair を返します (キー値でフィルター処理されます)。

コンパイルは問題なく実行されますが、有用なエラーが発生することなく毎回爆発します。

私は何が欠けていますか?(おそらく本当に明白な何か)

例えば:

    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);
    }

単純なNameValuePairコード:

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;
    }
}

アップデート:

NameValuePair オブジェクトの静的リストでクエリを返そうとしましたが、正常に動作します (ただし、役に立ちません)。

4

1 に答える 1

1

ここでこれを試したところ、エラーが発生しました。base {System.SystemException} = {"Only parameterless constructors and initializers are supported in LINQ to Entities."} 最初にオブジェクトを作成するように変更してから、プロパティ値を渡す必要があります。

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};
}
于 2012-05-22T18:23:41.927 に答える