【问题标题】:Generate many to many in entity framework在实体框架中生成多对多
【发布时间】:2011-01-10 19:33:14
【问题描述】:

我生成了一个如下所示的 edm 文件:

如何将其转换为多对多 edm?我将使用 POCO,所以我希望它看起来像:

public class User{
    public List<Role> Roles {get; set;}
    /* Other prop here */
}

public class Role{
    public List<User> Users {get; set;}
    /* Other prop here */
}

使用 EF4。

【问题讨论】:

    标签: entity-framework entity-framework-4 many-to-many poco


    【解决方案1】:

    好吧,您可能/可能不知道 - 如果您从 UserRole 表中删除该 UserRoleId 字段,EF 将根本不需要映射该联接表,并且它将为您创建多对多关联,并在后台对连接表进行“静默连接”。

    话虽如此,如果您必须拥有该额外字段,那么您可以执行以下操作:

    var userWithRoles = ctx.Users.Include("UserRoles.Role");
    

    同样:

    var roleWithUsers = ctx.Roles.Include("UserRoles.User");
    

    正如我所说,在多对多的大多数情况下,连接表中只需要 FK。

    如果可能,删除该字段,然后更新您的模型,多对多将“正常工作”。

    【讨论】:

    • 谈到英孚,你就像一个超级英雄。
    • 哈哈,谢谢夸奖。 :) 只是我目前正在做很多 EF4,所以这里的大部分问题我已经遇到并解决了。我曾经回答过很多关于 ASP.NET Web Forms 的问题,但是现在 ASP.NET MVC 出来了,我不再关心 Web Forms。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多