我正在尝试将一些数据添加到Code First表中,但我可能做错了。
当我尝试添加时,我在Department表中获得了重复的行 一个人。
这是我想要做的一个例子。
int Id;
string Name;
Department Dept;
int Id;
string DeparmentName;
在一种方法中,我为部门提供了几个条目。
然后,在另一种方法中,我尝试添加一个Person,但因为person中有一个Department对象,IT会在Department表中添加一个重复的Deparment。
下面的代码并不完全是我所拥有的,因为我试图缩短它的发布时间,但这个想法是一样的。
var dbContext = new Context();
// Get the Department for this user
var assignedDept = dbContext.Departments.FirstOrDefault(b => b.Id== 40);
var seededUser = new Person
{
Department = assignedDept,
Name = "John Doe"
};
var db = new Context();
db.Person.Add(seededUser);
db.SaveChanges();
答案 0 :(得分:1)
这里真的很容易解决,
db.Person.AddOrUpdate(seededUser);
并为该行提供实际ID
例如
var seededUser = new Person
{
Id = 1,
Department = assignedDept,
Name = "John Doe"
};
这是一个现实生活中的例子
https://github.com/lukemcgregor/StaticVoid.Blog/blob/master/Blog/Data/Migrations/Configuration.cs