【发布时间】:2021-05-16 23:19:56
【问题描述】:
我正在使用实体框架,目前在它到达最后一行时得到这个:
方法 'Single' 和 'SingleOrDefault' 只能用作 final 查询操作。考虑在此使用方法“FirstOrDefault” 而是实例。
我的查询是:
var orderitems =
from orderItem in db.Order_ProductItem
join style in db.Products_Styles on orderItem.Style equals style.Index
where orderItem.SalesOrderID == salesOrderId &&
(orderItem.IsDeleted==null || orderItem.IsDeleted.Value == false)
group new { orderItem, style } by orderItem.FrameNo into grp
select new OrderItemModel
{
FrameNo = grp.Key,
//Count = grp.Select(x => x.orderItem.FrameNo).Count(),
TotalCost = grp.Sum(x => x.orderItem.CostPrice),
OverAllWidth = grp.Single(x => x.orderItem.HardwareType == 3).orderItem.OverallWidth,
OverAllHeight = grp.Single(x => x.orderItem.HardwareType == 3).orderItem.OverallHeight,
Name = grp.Select(x => x.style.Name).First(),
ImagePath = grp.Select(x => x.style.External_Image_Path).First()
};
var orders = orderitems.ToList();
在 LINQPad/Linq to SQL 中似乎可以正常工作......
有什么想法吗?
【问题讨论】:
-
你试过错误信息说什么了吗?
-
您是将 DbContext 程序集加载到 Linqpad 中,还是只是将 Linqpad 指向您的数据库以运行查询? Linqpad 默认使用 Linq-to-SQL,它不执行与实体框架相同的查询。
标签: c# linq entity-framework