2

いくつかのプロパティを持つEFエンティティオブジェクトsysSettingsクラスがあります。groupこれらのnameプロパティの1つです。

quer以下のコードではIQueryable<sysSettings>オブジェクトです。

次のクエリを書き込もうとすると、2番目のwhere句で問題が発生します。

var query = from setting in quer
    where (setting.name.Equals("Url") && setting.group.Equals("system"))
select setting;

と呼ばれるエンティティオブジェクトにプロパティがある場合group、LINQクエリ内からそのプロパティにアクセスできないようです。

groupこれは、LINQで予約された/コンテキストに応じた作業/アクションである可能性があるためだと思います。

残念ながら、エンティティのプロパティ名を変更することはできません。

4

2 に答える 2

4

プロパティ名にシンボルを追加@します(クエリの場合のみ、設定クラスの定義は変更しないでください)。

var query = from setting in quer
            where (setting.name.Equals("Url") && setting.@group.Equals("system"))
            select setting;

この記号を使用すると、予約語(group)を使用できます。

于 2012-11-02T18:16:33.450 に答える
1

流暢な構文で書くとどうなりますか?

var query = quer.Where(e => e.name.Equals("Url") &&
                            e.group.Equals("system"));
于 2012-11-02T18:07:35.017 に答える