18

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

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句を使用します。

4

2 に答える 2

11

それは問題ではありません

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

于 2012-07-03T15:44:04.077 に答える
6

Vossad01 によって投稿された John Skeet の回答に従います。

適切な Linq where 句

于 2012-07-14T11:45:44.990 に答える