回答:
var list = (from t in ctn.Items
where t.DeliverySelection == true && t.Delivery.SentForDelivery == null
orderby t.Delivery.SubmissionDate
select t).Take(5);
take
データベースの最初の5行だけにする方法はありますか?
[ @Ajniが提供する回答よりもいくぶん説明的な回答を提供します。]
これは、LINQ Fluent構文を使用して実現することもできます。
var list = ctn.Items
.Where(t=> t.DeliverySelection == true && t.Delivery.SentForDelivery == null)
.OrderBy(t => t.Delivery.SubmissionDate)
.Take(5);
注各メソッド(つまりWhere
、OrderBy
、Take
このLINQ文で表示されますがかかること)ラムダ式を引数として。また、のドキュメントは次でEnumerable.Take
始まることに注意してください。
シーケンスの先頭から指定された数の隣接する要素を返します。
SQLスクリプトの場合のように、シーケンスFrom-> Where-> Selectに慣れていないように感じるかもしれませんが、これはSelect-> From-> Whereのようなものです。
しかし、Sql Engine内では、「From-> Where-> Select」のシーケンスでも解析されることを知らない場合があります。それを検証するには、簡単なスクリプトを試すことができます
select id as i from table where i=3
そして、それは動作しません、その理由は、エンジンが解析されますある場合は前に選択し、それは私がで別名を知ることができません、ので、どこ。これを機能させるために、あなたは試すことができます
select * from (select id as i from table) as t where i = 3