2009-05-22 10 views
1

が、私は知らないので、私はいくつかの助けが必要にLINQのprincipiant ..、2つの以上の部分でのLINQにSQL文を断ち切るには、LINQの構文であれば、クエリ内を壊すことによって

だプログラムの条件によって異なります2つの以上の部分、

だけで、次の例のように、

レコードは、各ステップでSQL Serverからすぐにダウンロードされますか、私はすべて見ることから始めましょうときには、現時点では、サーバーに送信されますデータ?残念ながらLINQのは、すぐにすべてのレコード

(したがって、私が持っていた、そのような疑いは正しかった!)

が存在をダウンロードした場合、私はいくつかのオブジェクト(exemple用データグリッド)

System.Linq.IQueryable<Panorami> Result = db.Panorami; 
byte FoundOneContion = 0; 

//step 1 
if (!string.IsNullOrEmpty(Title)) 
{ 
    Result = Result.Where(p => SqlMethods.Like(p.Title, "%" + Title + "%")); 

    FoundOneContion = 1; 
} 
//step 2 
if (!string.IsNullOrEmpty(Subject)) 
{ 
    Result = Result.Where(p => SqlMethods.Like(p.Subject, "%" + Subject + "%")); 
    FoundOneContion = 1; 
} 
if (FoundOneContion == 0) 
{ 
    return null; 
} 
else 
{ 
    return Result.OrderBy(p => p.Title).Skip(PS * CP).Take(PS); 
} 

をバインドexempleため 問題を回避するための構文?

は、たとえば:三項演算子(条件真一部:?偽一部)

任意の提案のために私は彼らに多くのことをいただければ幸いです。みんな、ありがとう!

答えて

1

上記の方法ではクエリが列挙されないため、データベース呼び出しは行われません。クエリが構築され、実行されません。

あなたはforeachを呼び出し、または(例えばToListToArrayとして)foreachを呼び出して、いくつかのメソッドを呼び出すことにより、またはGetEnumerator()を呼び出すことによって、クエリを列挙することができます。これにより、クエリが実行されます。

+0

ありがとうございます! は完全に応答:)) –

関連する問題