Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在“选择LINQ到实体”中添加更多属性_C#_Linq_Entity Framework - Fatal编程技术网

C# 在“选择LINQ到实体”中添加更多属性

C# 在“选择LINQ到实体”中添加更多属性,c#,linq,entity-framework,C#,Linq,Entity Framework,我有一个巨大的实体(记录),大约有20个字段。其中一个是StatusID,它映射到状态表。我想为每条记录提取状态并显示在UI中。为此我可以 创建自定义模型,编写带有连接的LINQ,并将所有必需的属性映射到自定义模型中 在记录模型中添加附加属性,获取记录后,循环每个记录,获取状态并更新 我对两者都不满意。因为它包括很多开销,无论是性能还是内存/维护。有更好的办法吗?我在找像这样的东西 from x in db.Records inner join y in db.Status on x.Statu

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

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

  • 在记录模型中添加附加属性,获取记录后,循环每个记录,获取状态并更新

  • 我对两者都不满意。因为它包括很多开销,无论是性能还是内存/维护。有更好的办法吗?我在找像这样的东西

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

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

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

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

    您应该使用选项1,但是您可以详细说明开销、性能、内存等吗?返回(从db.Records.Include(“Status”)中的x选择x)。ToList();//这是有效的。@KrishnaSarma:您可以将其压缩为
    返回db.Records.Include(“Status”).ToList()