Linq用于映射表

本文关键字:映射 用于 Linq | 更新日期: 2023-09-27 18:10:54

我不知道如何为给定的场景编写linq。请帮忙好吗?

我有三张表

  1. 员工(有empid,姓名等)
  2. 角色(有roleid, rolename等)
  3. EmpRoleMapping (roleid, empid)

我需要一个查询从employeetable中获取employeeName,从role table中获取rolename。

请帮忙好吗?

我正在使用如下所示的实体框架生成映射表,我没有获得第三个表名,现在要获得用于编写linq

的表名
  modelBuilder.Entity<Employee>()
                .HasMany(role => role.Roles)
                .WithMany(emp => emp.employee)
                .Map(role => role.MapLeftKey("RoleId").MapRightKey("EmployeeId").ToTable("EmployeeRoleMapping"));

Linq用于映射表

var query = from emp in db.Employee
            join empRole in db.EmpRoleMapping
            on emp.empid equals empRole.empid
            join r in db.Role 
            on empRole.roleid equals r.roleid
            select new { employeeName = emp.name, rolename = r.rolename };

我猜是这样的:

var result = employee.Select(e => e.name, e.Role.rolename);