获取详细记录作为主人的财产
本文关键字:主人 财产 记录 获取 | 更新日期: 2023-09-27 18:12:51
请考虑以下代码:
var res = (from a in ent.Orders
where a.OrderID < 10252
select new
{
OrderId=a.OrderID,
OrderDate = a.OrderDate,
OrderDetails=ent.Order_Details.Where(o=>o.OrderID == a.OrderID).ToList()
}).ToList() ;
当我运行这段代码时,我得到了这个错误:
附加信息:LINQ to Entities不识别方法'System.Collections.Generic.List
1[NorthwindModel1.Order_Detail] ToList[Order_Detail](System.Collections.Generic.IEnumerable
1[NorthwindModel1.Order_Detail])',并且该方法不能转换为存储表达式。
我想获得Orders
和他们的详细信息列表。
我如何用一条linq语句做到这一点?
谢谢
如果您使用EF,您可以在请求订单时包含("OrderDetails")。虽然我承认我不记得northwind数据库是否设置了关系。
类似:
var dbctx= new NorthwindContext();
var orders= dbctx.Orders.Include("OrderDetails").Where(o=>o.OrderID<10252).ToList();
你可以创建一个如下所示的模型类:
public class ViewModelClass
{
public int OrderId{ get; set; }
public int OrderDate { get; set; }
public List<NorthwindModel1.Order_Detail> OrderDetails{ get; set; }
}
,然后在你的查询:-
var res = (from a in ent.Orders
where a.OrderID < 10252
select new ViewModelClass
{
OrderId=a.OrderID,
OrderDate = a.OrderDate,
OrderDetails=ent.Order_Details.Where(o=>o.OrderID == a.OrderID).ToList()
}).ToList();