我有一个包含以下表格的数据库。
用户: ID用户所
模块: IdModule
多对多关系导致表UserModule。 ID用户 IdModule
我想将一个已经存在的模块添加到用户,因此实体框架应该做的唯一事情是在UserModule中添加一行。
但问题是它正在尝试向数据库添加模块,从而导致主键错误。
这是代码。
public static void LoadModuleInUser(string login,Module module)
{
//dbcontext
using (webentities db= new webentities())
{
User user= db.users.First(u => u.login== login);
user.Modules.Add(module);
db.SaveChanges();
}
}
答案 0 :(得分:0)
我们需要更多信息。请显示错误。模块实体是如何制作的?也许你的某个地方没有自动增量键。 (我无法发表评论所以我不得不将其作为答案发布)
答案 1 :(得分:0)
你能改变一下吗?
User user= db.users.First(u => u.login== login);
user.Modules.Add(module);
db.SaveChanges();
到此:
User user= db.users.Include("Modules").First(u => u.login== login);
user.Modules.Add(module);
db.SaveChanges();