无法将记录插入联接/查找/链接表(EF/FluentAPI/MVC)

本文关键字:链接表 EF FluentAPI MVC 查找 记录 插入 | 更新日期: 2023-09-27 18:19:25

好吧,所以我现在有点卡住了。我们已经使用EF、fluent api等创建了一个MVC应用程序,目前我在将新记录放入联接表时遇到了一些问题。

DB表结构

用户
(pk)ID
用户名
密码散列
等等
等等

DDRRole
(pk)ID
(fk)角色Id
(fk)DDRId

用户角色
(pk,fk)用户ID
(pk,fk)DDRRoleId

角色
(pk)ID名称

DDR
(pk)ID
名称

阶级结构

表的类是您所期望的具有列的道具的类,例如User有一个ICollection<DDRRole> DDRRole,DDRRole有一个ICollection<User> User

以下是fluent api部分(不是全部,而是处理联接表的部分):

modelBuilder.Entity<User>()
            .HasMany(uc => uc.DDRRole)
            .WithMany(dd => dd.User)
            .Map(x =>
                {
                   x.MapLeftKey("UserID");
                   x.MapRightKey("DDRRoleID");
                   x.ToTable("UserRole");
                });

所以问题是,当我们创建一个新用户时,这个部分是可以的,但当我们创建新用户时我们想给该用户一个DDRRole(它已经在数据库中),然后它将被添加到UserRole表中。我已经搜索了很多关于如何使用流利的api和其他东西的内容,但还没有让它发挥作用。

提前感谢的帮助

无法将记录插入联接/查找/链接表(EF/FluentAPI/MVC)

好吧,所以我弄清楚了发生了什么。。。。所以在我的create方法中,我将刚创建的User对象传递给试图添加角色的方法,而其他方法之间的工作不太好。。。。。长话短说,我输入了新用户的id,然后在一个新对象中添加了db.find(userid),并在其中添加了角色。。。。savechanges()时,插入操作正常。