高效地构建linq查询
本文关键字:查询 linq 构建 高效 | 更新日期: 2023-09-27 18:27:27
我有多个表,如
[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中发送到页面。
假设您已经定义了类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;
以便使用具有lambda样式的CCD_ 5。