将表实体与View Entity合并的最佳实践

时间:2018-02-22 15:53:13

标签: c# entity-framework linq

有没有更好的方法将实体表实体视图

合并

一个小例子:我有一个表:

id

名称

姓氏

列和名为 ViewPersonLastLocations 的视图:

为person_id

LOCATION_NAME 即可。

我需要使用 ViewPersonLastLocations 的信息显示表。 实际上我可以“合并”那些具有两个foreach的实体,并在 Person partial class 中创建一个变量。

还有其他办法吗?

1 个答案:

答案 0 :(得分:1)

根据您的上一条评论,我对您的需求有点不清楚,但如果关系为1:1,则会以此代码开头。如果它是1:多,那么它是相似的,但是投射到一个集合中。

var personWithLocation = context.Persons
        .SelectMany(p => context.ViewPersonLastLocations
                                .Where(vp => vp.person_id == p.id)
                                .DefaultIfEmpty(),
                         (p, vp) => new PersonViewModel  // create a viewmodel for results or anonymous
                         {
                             Id = p.id,
                             Name = p.name,
                             LastName = p.lastname,
                             LocationName = vp.location_name
                         }
                     ).ToList();