使用 LINQ LAMBDA 获取每个部门的员工

2024-01-11

我正在尝试使用 LINQ 连接两个表员工和部门,并尝试获取下面给出的图像格式的结果。有人可以帮助如何实现这一目标吗?

如何实现每个部门的员工。

这是我的代码

var EmpList = (from d in Department
 join e in Employee on d.ID equals e.ID
 select new
 {
   ID = d.ID, Name = d.Name, Location = d.location,  Employess =  
   e.FirstName, e.LastName, e.Gender
 });

上面的代码没有写完整。我不知道如何实现这一目标。

var elist = from d in db.Departments
                    join e in db.Employees on d.ID equals e.ID
                    group d by e.DepartmentId into g
                    select new { Details = g };

假设您有这样的结构:

var depts = new[] {
    new Dept { ID = 1, Name = "IT", Location = "New York" },
    new Dept { ID = 2, Name = "HR", Location = "London" },
    new Dept { ID = 3, Name = "Payroll", Location = "Sydney" }
};

var employees = new[] {
    new Employee { ID = 1, FirstName = "Mark", DeptID = 1 },
    new Employee { ID = 2, FirstName = "Steve", DeptID = 3 },
    new Employee { ID = 3, FirstName = "Ben", DeptID = 1 },
    new Employee { ID = 4, FirstName = "Philip", DeptID = 2 },
    new Employee { ID = 5, FirstName = "Mary", DeptID = 2 },
    new Employee { ID = 6, FirstName = "Valarie", DeptID = 3 },
    new Employee { ID = 7, FirstName = "John", DeptID = 1 }
};

您可以使用 LINQ Join 和 GroupBy 来获取所需的数据:

var result = depts
    .Join(employees.GroupBy(x => x.DeptID), dept => dept.ID, empGroup => empGroup.Key,
        (dept, empGroup) => new { 
            Name = dept.Name, 
            Location = dept.Location, 
            Employees = empGroup.ToArray() 
        });

或者类似 SQL 的语法:

var result = from dept in depts
             join empGroup in (
                from e in employees
                group e by e.DeptID into g
                select g
             ) on dept.ID equals empGroup.Key
             select new { 
                Name = dept.Name, 
                Location = dept.Location, 
                Employees = empGroup.ToArray()
             };

这实际上有什么作用?

  1. 员工按以下方式分组DeptID.
  2. 部门与此分组结合在一起,并产生所需格式的匿名对象的集合。当然,您可以使用强类型类。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 LINQ LAMBDA 获取每个部门的员工 的相关文章

随机推荐

  • 在没有 cron 的情况下在 AWS 中运行计划任务

    目前我在亚马逊有一台服务器 我把所有的 cronjobs 都放在里面 我想消除这个单点故障 并将所有任务公开为 Web 服务 我想将 VPC ELB 背后的服务公开给一些服务器 这些服务器将在调用时运行任务 Amazon AWS 是否提供某
  • 在驱动程序安装期间重新扫描设备树以了解硬件更改

    我在用着安装盾安装我的应用程序 驱动程序和服务 仅当在设备管理器中找到其硬件 ID 时 我才需要安装即插即用驱动程序 驱动程序安装是使用 DPInst exe 完成的 我的问题是 用户有时可以手动卸载驱动程序 安装后甚至卸载驱动程序 未知司
  • 在Http get请求上调用Https url

    我有一个https 网址并希望发送请求以从该 URL 获取数据 场景 1 从我的浏览器如果我点击 Url 我会得到响应 而从我的 Angularjs 应用程序我总是得到错误 401 但如果我从浏览器点击 Api 我总是得到正确的响应 出于安
  • Python-停止 FuncAnimation

    有谁知道停止 FuncAnimation 的首选方法 我正在使用它来记录示波器中的数据 并且希望能够按需暂停和重新启动数据 有什么方法可以向其发送按钮单击事件吗 谢谢 德里克 The FuncAnimation是一个子类TimedAnima
  • 将一个类中的值绑定到另一类中的另一个值

    我有以下课程课程要点 https gist github com anonymous 9306399 我想将 Item Visible 绑定到 Items ItemsVisible 可能吗 如果可以 如何 Item cs using Sys
  • 应如何处理变量扩展产生的反斜杠?

    我运行了以下命令 sh是一个名字sh实现 以及我能找到的所有 shell 虽然我期待所有的打印match 我得到了不一致的结果 我不知道哪种行为是正确的 可靠的 sh c case 1 in 2 echo match esac f oo f
  • Rails - 包括与动态条件的关联

    给定一个学校模型和一个学生模型 其中学校与学生有 has many 关系 has many students conditions gt proc year id send active year id 其中 active year id
  • 使用 ffmpeg 从 rtsp 源每 5 或 10 分钟截屏一次

    你好 我尝试制作脚本 每 5 或 10 分钟从 ip 摄像头获取屏幕截图 这个脚本可以工作 ffmpeg rtsp transport tcp i SOURCE vf fps fps 1 20 update 1 picture1 jpg 但
  • gnuplot 热图颜色范围

    我的文件中有一些 X Y Z 数据 我正在使用 gnuplot 来显示它 我正在创建一个热图 即 使用颜色呈现 Z 值的 2D 图 现在我正在使用以下脚本 set palette defined 0 blue 1 red plot xyz
  • Oracle:在更新一个字段时复制行

    请注意 我am问我想要回答的问题 我知道这个问题意味着数据库设置得不好 因此 我将否决任何建议更改表格设置方式的答案 我需要复制一堆行 同时更改一个值 name col1 col2 dave a nil sue b nil sam c 5
  • PHP htaccess 将查询字符串从大写重定向到小写

    我有这个小的 php 脚本和 htaccess 中的几行 用于将带有查询字符串的 URL 从大写重定向到小写 但是 仅当 url 文件或 url 的目录部分中有大写字符时 它才会将查询字符串中的大写字符重定向为小写字符 大写目录示例 dom
  • Java Spring JMS:JmsTemplate 到 IBM MQ

    Update 这是我的错误 我忘记了 ssl 调试正在运行 它现在非常快并且像魔术一样工作 我有一个使用 Spring JMS 连接到 IBM MQ 的 Spring Boot 应用程序 我意识到与根本不使用 Spring 相比 jmsTe
  • sys.stdin.readline() 读取时没有提示,返回“两者之间没有任何内容”

    我有一个执行以下操作 除其他外 的函数 userinput stdin readline betAmount int userinput 应该从 stdin 获取输入整数作为字符串并将其转换为整数 然而 当我调用该函数时 它返回一个换行符
  • 为什么在 JavaScript 构造函数中使用副作用是不好的做法?

    我使用与设计模式非常相似的东西自定义对象 http www klauskomenda com code javascript programming patterns custom通常在我的代码中 但 JSLint 不赞成这样的构造 fun
  • 远程运行 Perl 脚本时使用 MsgBox 回显变量?

    这可能吗 我正在使用 VB net 执行远程 Perl 脚本 我希望屏幕上出现一个 MsgBox 类似于 VBScript 我尝试只执行 Win32 MsgBox Test 但这不起作用 有可能吗 我正在从 Windows 系统远程执行脚本
  • 计算两幅图像之间的模糊内核

    与标准 且更具挑战性 去模糊和超分辨率场景不同 我可以访问原始 清晰 图像G而且是模糊版本B 我只是在寻找模糊内核h 所以因为B使用真实相机拍摄 关系为 B G h N 在哪里 表示卷积和N是一些附加噪声 自然 这是一个过度约束的问题 因为
  • 正则表达式仅匹配不在括号或方括号中的逗号

    我想用不在括号或方括号中的逗号分隔字符串 我正在使用以下字符串 土豆 植物油 向日葵油 玉米油和 或菜籽油 蜂蜜 烧烤调味料 糖 盐 葡萄糖 圆酵母 洋葱粉 香料 麦芽糊精果糖 酵母提取物 糖蜜 天然香料 含牛奶 玉米淀粉 蜂蜜 阿拉伯胶
  • 直接用户输入的动态 LINQ 有什么危险吗?

    我在 ASP NET MVC 应用程序中有一个表 我希望可以使用 AJAX 对其进行排序 服务器端 和过滤 我希望它在其他地方相当容易使用 并且不想将排序和过滤硬编码到查询表达式中 因此我寻找一种动态构建表达式的方法 我发现最好的方法是使用
  • 如何将 CSS 变换矩阵转换回其组件属性

    我通过使用获得了元素的 CSS 变换矩阵getComputedStyle 方法如下 var style window getComputedStyle elem1 null var trans style transform 反式 矩阵 1
  • 使用 LINQ LAMBDA 获取每个部门的员工

    我正在尝试使用 LINQ 连接两个表员工和部门 并尝试获取下面给出的图像格式的结果 有人可以帮助如何实现这一目标吗 如何实现每个部门的员工 这是我的代码 var EmpList from d in Department join e in