有没有更好的方法将实体表与实体视图
合并一个小例子:我有一个人表:
id ,
名称,
姓氏
列和名为 ViewPersonLastLocations 的视图:
为person_id
LOCATION_NAME 即可。
我需要使用 ViewPersonLastLocations 的信息显示人表。 实际上我可以“合并”那些具有两个foreach的实体,并在 Person partial class 中创建一个变量。
还有其他办法吗?
答案 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();