web-dev-qa-db-ja.com

複数のwhere条件でLinqを使用する

定義されているデータベースのテーブルを表すクラスがあります。

public class MyClass{
    public int MyClassId{get;set;}
    public string Name{get;set;} 
    public string LastNamw{get;set;}
    public DateTime From{get;set;}
    public DateTime To{get;set;}
}

その上で、Oracleデータベースに対して検索クエリを実行します。

今問題は:

var list = context.MyClass
    .Where(x => x.From>= FromMyDate)
    .Where(x => x.To <= ToMyDate);


var list = context.MyClass
    .Where(x => x.From>= FromMyDate && x.To <= ToMyDate);

where条件または1つで複数の行を使用する方が良いですか?そしてなぜ...ください

私が理解している限り、最初の条件の結果を検索する場合は、複数のwhere句を使用します。

14
cpoDesign

Vossad01が投稿したJohn Skeetの回答をフォローします。

適切なLinq where句

3
cpoDesign

関係ない

Oracleプロバイダーに渡される式ツリーを作成するだけで、結果のSQLクエリを作成するのはプロバイダーの仕事です。式ツリーは2つの間で若干異なりますが、同じSQLになるはずです。私はsqlプロファイラーを使用して、linqクエリが効率的なSQLを生成していることを確認したいと思っています。

10
Aducci