LINQ - Select 在 entityframework 中加入的完整对象
LINQ - Select complete object with join in entityframework
我有一个名为 employee 的模型
[Table("tblemployee")]
public class Employee
{
public int EmpID;
public string EmpName;
[NotMapped]
public string EmpRole;
}
我有另一个角色模型
[Table("tblrole")]
public class Role
{
public int EmpID;
public string RoleName;
}
现在我想要一个 employee 的最终对象,它将 Role class 的 RoleName 设置为 Employee class 的 EmpRole。
var result = from e in Context.Employee
join r in Context.Role on e.EmpID equals r.EmpID
select new Employee {
EmpID = e.EmpID,
EmpName = e.EmpName,
EmpRole = r.RoleName
};
在这里,我不想设置 employee class 的所有属性。我只想设置来自角色 class 的 emprole 属性。有没有其他方法可以让我 select 立即完成员工对象并且只设置 EmpRole 字段?请帮忙。
提前致谢
解决这个问题的唯一方法是 select table 中的 Employee 和角色,然后应用 ToList,然后在列表上应用 foreach 以在 Employee 对象中设置 EmpRole,然后 select列表中的员工对象。
var result = (from e in Context.Employee
join r in Context.Role on e.EmpID equals r.EmpID
select new { Employee = e, Role = r}).ToList();
result.ForEach(d => {d.Employee.EmpRole = d.Role.RoleName;});
var finalResult = result.Select(d => d.Employee);
我有一个名为 employee 的模型
[Table("tblemployee")]
public class Employee
{
public int EmpID;
public string EmpName;
[NotMapped]
public string EmpRole;
}
我有另一个角色模型
[Table("tblrole")]
public class Role
{
public int EmpID;
public string RoleName;
}
现在我想要一个 employee 的最终对象,它将 Role class 的 RoleName 设置为 Employee class 的 EmpRole。
var result = from e in Context.Employee
join r in Context.Role on e.EmpID equals r.EmpID
select new Employee {
EmpID = e.EmpID,
EmpName = e.EmpName,
EmpRole = r.RoleName
};
在这里,我不想设置 employee class 的所有属性。我只想设置来自角色 class 的 emprole 属性。有没有其他方法可以让我 select 立即完成员工对象并且只设置 EmpRole 字段?请帮忙。
提前致谢
解决这个问题的唯一方法是 select table 中的 Employee 和角色,然后应用 ToList,然后在列表上应用 foreach 以在 Employee 对象中设置 EmpRole,然后 select列表中的员工对象。
var result = (from e in Context.Employee
join r in Context.Role on e.EmpID equals r.EmpID
select new { Employee = e, Role = r}).ToList();
result.ForEach(d => {d.Employee.EmpRole = d.Role.RoleName;});
var finalResult = result.Select(d => d.Employee);