【问题标题】:Linq for mapping table用于映射表的 Linq
【发布时间】:2014-07-02 17:37:14
【问题描述】:

我不知道如何为给定的场景编写 linq。请问有什么帮助吗?

我有三张桌子

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

我需要一个查询来从员工表中获取员工名称,从角色表中获取角色名称。

有什么帮助吗?

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

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

【问题讨论】:

  • 这是linq 什么?
  • 想一想如何用纯 SQL 编写它。然后在这里发布,我们将从那里开始工作。
  • 您可以安装 ReSharper。该程序创建 / 将代码转换为 LINQ 查询。这样你就可以学习 LINQ。
  • 我假设您使用 EF 对吗?然后是什么:模型优先、数据库优先还是 poco? - 你能告诉我们你到目前为止做了什么吗?
  • @Odrai:我不认为 ReSharper 可以从无到有为您编写所有内容

标签: c# linq


【解决方案1】:
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 };

【讨论】:

  • 嗨,我在我的上下文中创建角色映射表运行时,我没有得到表。这是我的代码 modelBuilder.Entity() .HasMany(role => role.Roles) .WithMany(emp => emp.employee) .Map(role => role.MapLeftKey("RoleId").MapRightKey(" EmployeeId").ToTable("EmployeeRoleMapping"));请如何获取用于编写我的查询的表
【解决方案2】:

我猜是这样的:

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

【讨论】:

    猜你喜欢
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    相关资源
    最近更新 更多