无法将记录插入联接/查找/链接表(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和其他东西的内容,但还没有让它发挥作用。
提前感谢的帮助
好吧,所以我弄清楚了发生了什么。。。。所以在我的create方法中,我将刚创建的User对象传递给试图添加角色的方法,而其他方法之间的工作不太好。。。。。长话短说,我输入了新用户的id,然后在一个新对象中添加了db.find(userid),并在其中添加了角色。。。。savechanges()时,插入操作正常。