小编典典

C# Entity-Framework:如何在模型对象上组合 .Find 和 .Include?

all

我正在做 mvcmusicstore 练习教程。在为专辑管理器创建脚手架时,我注意到了一些事情(添加删除编辑)。

我想优雅地编写代码,所以我正在寻找一种简洁的方式来编写它。

仅供参考,我正在使商店更通用:

专辑 = 物品

流派 = 类别

艺术家 = 品牌

以下是检索索引的方式(由 MVC 生成):

var items = db.Items.Include(i => i.Category).Include(i => i.Brand);

以下是检索要删除的项目的方式:

Item item = db.Items.Find(id);

第一个带回所有项目并填充项目模型中的类别和品牌模型。第二个,不填充类别和品牌。

我如何编写第二个来查找并填充里面的内容(最好在 1 行中)......理论上 - 类似于:

Item item = db.Items.Find(id).Include(i => i.Category).Include(i => i.Brand);

阅读 101

收藏
2022-08-15

共1个答案

小编典典

您可以Include()先使用,然后从结果查询中检索单个对象:

Item item = db.Items
              .Include(i => i.Category)
              .Include(i => i.Brand)
              .FirstOrDefault(x => x.ItemId == id);
2022-08-15