-1

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

数据库表结构

用户
(pk)ID
用户名
密码 哈希


DDRRole
(pk)ID
(fk)RoleId
(fk)DDRId

UserRole
(pk,fk)UserId
(pk,fk)DDRRoleId

角色
(pk)ID 名称

DDR
(pk)ID
名称

类结构

表的类是您期望的具有列的道具,例如 User 有一个ICollection<DDRRole> DDRRoleDDRRole 有一个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(已经在数据库中),然后它将被添加到用户角色表。我已经搜索了大量关于如何使用流利的 api 和其他东西做的事情,但还没有让它工作。

在此先感谢您的帮助

4

1 回答 1

0

好的,所以我弄清楚发生了什么(有点)......所以在我的 create 方法中,我将刚刚创建的 User 对象传递给试图添加角色的方法,并且某些东西不起作用彼此相处融洽……长话短说,我传入了新用户的 id,然后将 db.find(userid) 放入了一个新对象中,并将角色添加到该对象中……在 savechanges() 插入工作。

于 2014-08-26T18:09:41.257 回答