linqクエリを作成する一般的な方法について質問があります。実際、私は同僚と議論を交わしました。
trueの場合に備えて、ブール変数があります。追加のチェックが必要です。それが偽の場合、そのようなチェックはないはずです。
linqで実装する方法は2つあります。
bool onlyForReturningCustomers;
.....
return context.Products.Where(product => product.StartTime >= fromDate
&& product.StartTime < toDate
&& (onlyForReturningCustomers ? product.IsReturningClient : true));
そして2番目:
bool onlyForReturningCustomers;
.....
var q = context.Products.Where(product => product.StartTime >= fromDate && product.StartTime < toDate);
if (onlyForReturningCustomers) {
q = q.Where(product => product.IsReturningClient);
}
return q;
case
最初のものはSQLでステートメントをレンダリングしonlyForReturningCustomers=false
、のようなステートメントが表示され1=1
ますが、このコードははるかに読みやすくなっています。
2つ目はそれほど読みやすいものではありませんが、SQLでジャンクなしで明確なステートメントをレンダリングします。
どちらを使いますか?