好吧,所以我此刻有点卡住了。我们使用EF,流畅的api等创建了一个MVC应用程序,而且我目前在将新记录添加到连接表时遇到了一些麻烦。
用户
(PK)ID
名
passwordhash
等
等
DDRRole
(PK)ID
(FK)角色ID
(FK)DDRId
的UserRole
(PK,FK)用户ID
(PK,FK)DDRRoleId
角色
(PK)ID
名称
DDR
(PK)ID
名称
表格的类是您期望拥有列的道具,例如用户有ICollection<DDRRole> DDRRole
而DDRRole有ICollection<User> User
这里是流畅的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和其他东西做什么的事情,但是还没有让这个工作起作用。
提前感谢您的帮助
答案 0 :(得分:0)
好吧所以我弄清楚发生了什么(有点)....所以在我的创建方法中,我将我刚刚创建的User对象传递给试图添加角色的方法和那个没有的东西彼此运作良好.....长话短说我传入了新用户的id,然后将db.find(userid)添加到一个新对象中,并在那里添加了角色......在savechanges上(插入工作。