这是一个 linq 内部联接,它返回我想要的内容
var innerJoinQuery =
from employee in DbSet
join department in DbContext.Set<Departments>() on employee.DepartmentID equals department.ID
select new { ID = employee.ID, FirstName = employee.FirstName, LastName = employee.LastName, DepartmentID = employee.DepartmentID, DepartmentName = department.Name };
List<Employees> innerjoinresult_as_employees_list = innerJoinQuery.AsEnumerable().Cast<Employees>().ToList();
员工模型是:
public class Employees
{
public int ID { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
public int DepartmentID { get; set; }
[NotMapped]
public string DepartmentName { get; set; }
}
我的问题是我不能将 var innerJoinQuery 作为 List<Employees>
这样我就可以返回。
有人知道怎么做吗?
最佳答案
如果我理解正确,您正在寻找一种将结果转换为 Employees
实例列表的方法。
您可以通过更新 LINQ 语句的投影部分来做到这一点。目前它转换到一个反义对象。您想要投影到 Employees
类型
var innerjoinresult_as_employees_list =(from employee in DbSet
join department in DbContext.Set<Departments>()
on employee.DepartmentID equals department.ID
select new Employees {
ID = employee.ID,
FirstName = employee.FirstName,
LastName = employee.LastName,
DepartmentID = employee.DepartmentID,
DepartmentName = department.Name }
).ToList();
结果(变量 innerjoinresult_as_employees_list
的值将是 Employees
类的列表)
关于c# - Linq 将结果连接到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38444853/