实体框架 linq include() 一对多中的最后 2 条记录
Entity framwork linq include() last 2 records in 1 to many
我正在尝试找到一种方法来仅获取 entity framework 6 中一对多关系中的最后 2 条记录。
我有 3 个模型对象。
产品、价格和库存。
产品具有价格和库存对象列表。
我需要最后一条记录来显示当前价格和库存,倒数第二条记录来比较价格差异。
基本上我正在尝试找到一种方法来做到这一点:
var products = ProductManager.Instance.SelectAll(db)
.Include(a => a.ProductPrices.Reverse().Take(2))
.Include(a => a.ProductStock.Last());
但这会引发运行时错误。
我可以建议这个解决方案:
var products = (from pm in ee.ProductManager
join pp in ee.ProductPrices on pm.ProductID equals pp.ProductID into temppp
from ppp in temppp.OrderByDescending(c => c.ProductID).Take(2)
join ps in ee.ProductStock on pm.ProductID equals ps.ProductID into tempps
from pps in tempps.OrderByDescending(c => c.ProductID).Take(1)
select new { pm, ppp, pps }
).ToList();
我正在尝试找到一种方法来仅获取 entity framework 6 中一对多关系中的最后 2 条记录。 我有 3 个模型对象。 产品、价格和库存。 产品具有价格和库存对象列表。 我需要最后一条记录来显示当前价格和库存,倒数第二条记录来比较价格差异。
基本上我正在尝试找到一种方法来做到这一点:
var products = ProductManager.Instance.SelectAll(db)
.Include(a => a.ProductPrices.Reverse().Take(2))
.Include(a => a.ProductStock.Last());
但这会引发运行时错误。
我可以建议这个解决方案:
var products = (from pm in ee.ProductManager
join pp in ee.ProductPrices on pm.ProductID equals pp.ProductID into temppp
from ppp in temppp.OrderByDescending(c => c.ProductID).Take(2)
join ps in ee.ProductStock on pm.ProductID equals ps.ProductID into tempps
from pps in tempps.OrderByDescending(c => c.ProductID).Take(1)
select new { pm, ppp, pps }
).ToList();