var list = from t in ctn.Items
where t.DeliverySelection == true && t.Delivery.SentForDelivery == null
orderby t.Delivery.SubmissionDate
select t;
如何修改此查询以从数据库中仅选择五个结果?
6 回答
7
var list = (from t in ctn.Items
where t.DeliverySelection == true && t.Delivery.SentForDelivery == null
orderby t.Delivery.SubmissionDate
select t).Take(5);
1
解决方案:
var list = (from t in ctn.Items
where t.DeliverySelection == true && t.Delivery.SentForDelivery == null
orderby t.Delivery.SubmissionDate
select t).Take(5);
36
这也可以使用Linq的基于Lambda的方法来实现;
var list = ctn.Items
.Where(t=> t.DeliverySelection == true && t.Delivery.SentForDelivery == null)
.OrderBy(t => t.Delivery.SubmissionDate)
.Take(5);
var list = ctn.Items
.Where(t=> t.DeliverySelection == true && t.Delivery.SentForDelivery == null)
.OrderBy(t => t.Delivery.SubmissionDate)
.Take(5);
请注意,此LINQ语句中出现的每个方法( Where , OrderBy ,Take)都将lambda expression作为参数 . 另请注意 Enumerable.Take 的文档以:
从序列的开头返回指定数量的连续元素 .
372
Additional information
有时需要将模型绑定到视图模型中并给出 type conversion error . 在这种情况下,您应该使用 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();
6 回答
解决方案:
这也可以使用Linq的基于Lambda的方法来实现;
[提供比@Ajni提供的the answer更具描述性的答案 . ]
这也可以使用LINQ fluent syntax来实现:
请注意,此LINQ语句中出现的每个方法(
Where
,OrderBy
,Take)都将lambda expression作为参数 . 另请注意Enumerable.Take
的文档以:Additional information
有时需要将模型绑定到视图模型中并给出 type conversion error . 在这种情况下,您应该使用
ToList()
方法 .只是觉得你可能不熟悉序列From-> Where-> Select,就像在sql脚本中一样,它就像 Select->From->Where.
但你可能不知道在Sql Engine里面,它也按照' From->Where->Select '的顺序进行解析,要验证它,你可以尝试一个简单的脚本
它不起作用,原因是引擎会在 Select 之前解析 Where ,所以它不会在 where 中知道别名 . 为了使这项工作,你可以尝试