1

我有多个表,例如

[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 ,其中包含类别、子项等的 IEnumerables。我的问题是订购 linq sql 查询以一次获取所有这些信息的最佳方法是什么。目前,我只是为每个表使用多个 for 语句并将它们存储到变量中,然后将这些变量放入我的 LocalModel 中以发送到页面。

4

1 回答 1

1

大概,您已经定义了您的类Item,如下所示:

class Item
{
    .....
    public virtual ICollection<SubItem> SubItems { get; set; }
    public virtual ICollection<Category> Categories { get; set; }
}

因此,为了快速加载SubItemsand 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 风格一起使用。

于 2013-08-12T03:46:18.973 回答