c# - Linq 将结果连接到列表

标签 c# linq list join var

这是一个 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/

相关文章:

C# 使用 linq 连接两个 Collection<string> 并获得 Collection<string> 结果

c# - List<T> 的线程安全,只有一个 Writer,没有 Enumerators

c# - Entity Framework 添加到我决定外键 ID 的数据库

c# - TaskCompletionSource.SetResult 的线程安全

c# - C 中 char 点的等效 C# 类型是什么

linq - 如何对查找进行排序?

c# - 如何使用 linq 对集合对象执行 WHERE(使用 Netflix 数据源)

python - 在 python 中搜索给定字符串的超字符串列表的最快方法

c# - ListView /列表过滤器 Windows Phone 8.1 C#

javascript - C# 不显示完整的 IP 地址