使用实体框架查询返回的数据填充ViewModel
本文关键字:数据 填充 ViewModel 返回 查询 实体 框架 | 更新日期: 2023-09-27 18:27:51
我有以下视图模型
public class VmPerson
{
public Person Person { get; set; }
public PersonAddress PersonAddress { get; set; }
public PersonEmploymentHistory PersonEmploymentHistory { get; set; }
}
我调用一个函数并传递一个personId
,然后尝试按如下方式填充Person
类并传递回ViewModel
(这里将有其他查询来填充地址和工作历史)
public VmPerson LoadPersonById(int personId)
{
var vmPerson = new VmPerson();
using (var context = new Context())
{
var r = (from p in context.Person
join a in context.PersonAddress on p.PersonId equals a.PersonId
join e in context.PersonEmployment on p.PersonId equals e.PersonId
where p.PersonId == personId
select new
{
vmPerson.Person.PersonFirstName = p.PersonFirstName,
vmPerson.Person.PersonSurname = p.PersonSurname,
vmPerson.Person.PersonEmail= p.PersonEmail,
vmPerson.Person.Age = p.Age
});
}
return vmPerson;
}
但我在select new{}中的所有语句上都得到了一个错误,这就是
匿名类型投影初始值设定项,应为简单名称或成员访问表达式
public VmPerson LoadPersonById(int personId)
{
using (var context = new Context())
{
var r = (from p in context.Person
join a in context.PersonAddress on p.PersonId equals a.PersonId
join e in context.PersonEmployment on p.PersonId equals e.PersonId
where p.PersonId == personId
select new VmPerson
{
Person = p,
PersonAddress = a,
PersonEmploymentHistory = e
}).FirstOrDefault();
return r;
}
}