在LINQ到实体的选择中添加更多属性

本文关键字:添加 属性 选择 LINQ 实体 | 更新日期: 2023-09-27 18:09:33

我有一个巨大的实体(记录),大约有20个字段。其中之一是StatusID,它映射到状态表。我想拉状态,并显示在每条记录的UI。对于这个我可以

  1. 创建一个自定义模型,编写一个带有join的LINQ,并将所有需要的属性映射到自定义模型

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

我都不舒服。因为它包含很多开销,无论是性能还是内存/维护。有没有更好的办法?我在找类似

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

在LINQ到实体的选择中添加更多属性

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

using System.Data.Entity;
// ...
var records = db.Records.Include(x => x.Status);

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