【发布时间】:2015-08-18 17:49:20
【问题描述】:
我有以下课程:
public class Seller : Entity
{
public int SellerId { get; set; }
public string Name { get; set; }
public ICollection<InventoryItem> InventoryItems { get; set; }
}
public class InventoryItem : Entity
{
public int InventoryId { get; set; }
public int SellerId { get; set; }
public string SellerSku { get; set; }
public ICollection<SiteInventoryItem> SiteInventoryItems { get; set; }
}
public class SiteInventoryItem : Entity
{
public int Id { get; set; }
public int InventoryId { get; set; }
public SiteType Site { get; set; }
}
所以Seller 拥有InventoryItem 的集合,而InventoryItem 又拥有SiteInventoryItem 的集合。
如何获得带有InventoryItems 列表的Seller,其中SiteInventoryItems 列表中的SiteType == SiteType.SiteName 和Seller.SellerId == 14?
SiteType 是 Enum,db 类型是 int。
我尝试了以下方法,它编译并运行,但结果不是预期的:
var seller = repo.Query(
x => x.InventoryItems,
x => x.InventoryItems.Select(y => y.SiteInventoryItems)
).Select(x => new
{
Seller = x,
InventoryItems = x.InventoryItems,
SiteInventoryItems = x.InventoryItems.Select(y => new
{
InventoryItem = y,
SiteInventoryItems = y.SiteInventoryItems.Where(z => z.Site == SiteType.Amazon)
})
}).Where(x => x.Seller.SellerId == 14).First();
【问题讨论】:
-
您需要一个
Seller,它的InventoryItems集合至少包含一个InventoryItem,它至少有一个具有适当值的SiteInventoryItem? -
@haim770 - 我需要一个
Seller和InventoryItem的集合,然后每个人都有一个SiteInventoryItem的集合,约束是Seller.SellerId == 14和SiteInventoryItem.Site == 1 -
“一点运气都没有”是什么意思?它编译吗?它运行吗?它会返回结果吗?
-
@CodeCaster - 它编译并运行,但结果不是预期的。
-
你期待什么,结果是什么?
标签: c# entity-framework