我正在使用實體框架。我的典型訪問功能是這樣的:Linq SelectMany in Entity Framework
public IEnumerable<Product> Category(string category, int term)
{
using (var uow = new UnitOfWork(Connections.LoanComparision))
{
var r = new Repository<Product>(uow.Context);
return r.Find(x => x.Category == category)
.Include(x => x.ProductDetails)
.Include(x => x.ProductRates)
.Include(x => x.Provider)
.ToList();
}
}
你會從上面的代碼注意到2件事情。
- 查詢返回一個產品列表,其中包含鏈接的 實體。
- 每個產品都有許多ProductDetail行。
我想要做的(並且還沒有能夠解決的)是在ProductDetails表上應用選擇標準。 (我的函數)可以用標準的.Where子句替換,但是我需要在MinTerm和MaxTerm(它在ProductDetails中)上過濾,但仍然返回完整的Product數據集(包括鏈接的實體) ,而不僅僅是ProductDetails。
Where(x => term >= x.MinTerm && term <= x.MaxTerm)
我可以計算出如何通過第一參考產品詳細和鏈接到其他表做,但不能在此配置。可能嗎?
否。解決這個問題,你應該返回一個'IEnumerable'或使用自定義類型和投影。 –
只需加入產品的產品細節進行過濾,然後選擇您需要的一切 –
@KonstantinErshov - 不完全理解,請您澄清。 –