1

私はちょうど書いたこのlinqステートメントを持っています:

Location loc = db.Locations.Where(l => l.name == name).Where(l => l.type == "SERV").FirstOrDefault();

select from where and ...これがあなたのやり方なのか、それとももっと良い方法があるのか​​ 疑問に思っています

名前が渡された名前であり、タイプが渡されたタイプである場所の名前から選択しようとしています。これに一致する最初の場所を取得してください。

4

2 に答える 2

2

Wheresをチェーンする必要はありません&&。代わりに使用できます。さらに、FirstOrDefaultは条件を取るため、次のように呼び出し内で句全体を移動できます。

Location loc = db
    .Locations
    .FirstOrDefault(l => l.name == name && l.type == "SERV");
于 2013-05-15T16:50:46.767 に答える
1

あなたがしていることはうまくいきますが、これを行うこともできます:

Location loc = db.Locations.Where(l => l.name == name && l.type == "SERV").FirstOrDefault();

アップデート:

これは明らかにデータベース オブジェクトに反しているので、基礎となる SQL がそれぞれの場合にどのように見えるか興味がありました - 私の推測では、それらは同じであると思います。

ToTraceString() 拡張機能を使用して SQL を表示しましたが、予想どおり、それらは同じです。

于 2013-05-15T16:51:20.630 に答える