【问题标题】:Add more properties within select of LINQ to Entities在选择的 LINQ to Entities 中添加更多属性
【发布时间】:2014-06-21 19:47:48
【问题描述】:

我有一个包含大约 20 个字段的巨大实体(记录)。其中之一是StatusID,它映射到Status 表。我想为每条记录提取状态并在 UI 中显示。为此我可以

  1. 创建自定义模型,编写带有连接的 LINQ 并将所有必需的属性映射到自定义模型中

  2. 在Record模型中添加附加属性,获取记录后,循环每条记录,获取状态并更新

我也不满意。由于它包含大量开销,无论是性能还是内存/维护。有没有更好的办法?我正在寻找类似的东西

from x in db.Records inner join y in db.Status on x.StatusID equals y.StatusID select (x, y.Status) as x

【问题讨论】:

  • 您应该选择选项 1,但您能详细说明开销、性能、内存等吗?

标签: c# linq entity-framework


【解决方案1】:

假设您的数据库中设置了外键,您可以使用 LINQ Include 运算符为您检索的每个 Record 实体填充您的 Status 导航属性:

using System.Data.Entity;

// ...

var records = db.Records.Include(x => x.Status);

然后,在您的 UI 中,您可以绑定到 Status.Name

【讨论】:

  • return (from x in db.Records.Include("Status") select x).ToList(); // 这行得通。
  • @KrishnaSarma:你可以把它浓缩成return db.Records.Include("Status").ToList();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多