我有一个LINQ查询:
var list = from t in ctn.Items
where t.DeliverySelection == true && t.Delivery.SentForDelivery == null
orderby t.Delivery.SubmissionDate
select t;
Run Code Online (Sandbox Code Playgroud)
如何修改此查询以从数据库中仅选择五个结果?
Gid*_*don 412
var list = (from t in ctn.Items
where t.DeliverySelection == true && t.Delivery.SentForDelivery == null
orderby t.Delivery.SubmissionDate
select t).Take(5);
Run Code Online (Sandbox Code Playgroud)
Har*_*OTA 37
解决方案:
var list = (from t in ctn.Items
where t.DeliverySelection == true && t.Delivery.SentForDelivery == null
orderby t.Delivery.SubmissionDate
select t).Take(5);
Run Code Online (Sandbox Code Playgroud)
小智 20
这也可以使用Linq的基于Lambda的方法来实现;
var list = ctn.Items
.Where(t=> t.DeliverySelection == true && t.Delivery.SentForDelivery == null)
.OrderBy(t => t.Delivery.SubmissionDate)
.Take(5);
Run Code Online (Sandbox Code Playgroud)
这也可以使用LINQ 流畅的语法实现:
var list = ctn.Items
.Where(t=> t.DeliverySelection == true && t.Delivery.SentForDelivery == null)
.OrderBy(t => t.Delivery.SubmissionDate)
.Take(5);
Run Code Online (Sandbox Code Playgroud)
注意,每一种方法(Where,OrderBy,Take出现在此LINQ语句)需要一个lambda表达式作为参数.另请注意,文档Enumerable.Take以:
从序列的开头返回指定数量的连续元素.
Additional information
有时有必要将模型绑定到视图模型中并给出类型转换错误。在这种情况下,您应该使用ToList()方法。
var list = (from t in ctn.Items
where t.DeliverySelection == true && t.Delivery.SentForDelivery == null
orderby t.Delivery.SubmissionDate
select t).Take(5).ToList();
Run Code Online (Sandbox Code Playgroud)