这是我的情景。我有3个型号。我应该如何将ProductItems分组到每个ProductPack中。存储过程最好吗?如果是这样,它看起来像什么?我是存储过程的新手。我不知道如何让Entity框架将ProductItems添加到ProductPacks中。我正在使用ProductPackGroups表,因为我需要一种方法来保持我的产品包足够灵活,以便将现有的ProductItems混合和匹配到ProductPacks中。
ProductItems - ID - 标题 - 说明
ProductPacks - ID - 标题 - 说明
ProductPackGroups - ID - ProductItemId - ProductPackId - ProductItem - ProductPack
我运行我的IQueryable GetAllProductPackGroups(); 每个结果都包含一个ProductItem对象和ProductPack对象。
结果看起来像这样:
{Id = 1,ProductItemId = 1 ,ProductPackId = 1,ProductItem = [Object],ProductPack = [Object]} {Id = 1,ProductItemId = 2 ,ProductPackId = 1,ProductItem = [Object],ProductPack = [Object]} {Id = 1,ProductItemId = 3 ,ProductPackId = 1,ProductItem = [Object],ProductPack = [Object]} {Id = 1,ProductItemId = 4 ,ProductPackId = 1,ProductItem = [Object],ProductPack = [Object]} {Id = 1,ProductItemId = 5 ,ProductPackId = 1,ProductItem = [Object],ProductPack = [Object]}
答案 0 :(得分:0)
您可以利用EF的热切提取来最小化数据库调用次数。这样的事情可以解决问题:
var productPackGroups = _dbContext.ProductPackGroups
.Include(x => x.ProductPacks)
.Include(x => x.Products);
MSDN在EF中加载相关实体的方式有really good article。