我有多个表格,例如
[Item] [Items_Categorys] [Categorys] [Item_SubItem]
-Id -Id -Id -Id
-Title -Item_ID [FK: Item] -Text -Title
-Description -Category_Id [FK: Categorys] -Item_Id [FK:Items]
-Image
所以我想把它放到如果它们进入Items / {item_id}页面,它会将项目,它的类别,子项目等添加到视图中。我创建了一个LocalModel,它保存了Categorys,Substitems等的IEnumerables。我的问题是什么是命令linq sql查询一次获取所有这些信息的最佳方法。目前,我只是为每个表使用了一些for语句并将它们存储到变量中,然后将这些变量放入我的LocalModel中以发送到页面。
答案 0 :(得分:1)
据推测,您已经定义了类Item
,如下所示:
class Item
{
.....
public virtual ICollection<SubItem> SubItems { get; set; }
public virtual ICollection<Category> Categories { get; set; }
}
因此,为了加载SubItems
和Categories
,您可以使用Include
方法:
var item = dbContext.Items.Include(i => i.SubItems)
.Include(i => i.Categories)
.SingleOrDefault(i => i.Id = id);
还要确保你有:
using System.Data.Entity;
为了将Include
与lambda风格一起使用。