私はこのコードが動作することに驚きました。ラムダ式と|| Entity Frameworkの中にオペレータ
string category = null;
Category Category = null;
int categoryId = 0;
var products = repository.Products
.Where(p => category == null || p.CategoryID == categoryId)
.ToList();
まだ次のコードは、を失敗:
string category = null;
Category Category = null;
int categoryId = 0;
var products = repository.Products
.Where(p => category == null || p.CategoryID == Category.CategoryID)
.ToList();
私は問題は、私が使用しているにもかかわらず、ということを知っています| |私が思うようにはうまくいきません。
第2の例では、カテゴリ値がnullであっても、なぜカテゴリが参照されるのですか。短絡しないでしょうか?
どのように失敗しますか? – MikeTheLiar
'category'と' Category'を混在させているようですね? – itsme86
'短絡しないでしょうか? 'これはクエリプロバイダによって実行されています。 C#コードをまったく実行していないので、C# '||'演算子のセマンティクスは適用されません。 – Servy