1

我正在尝试将一些数据播种到 Code First 表中,但我可能做错了。

尝试添加人员时,部门表中出现重复行。

这是我正在尝试做的一个例子。


[桌人]

int Id;
string Name;
Department Dept;

【餐桌部】

int Id;
string DeparmentName;

在一种方法中,我为 Department 播种了几个条目。

然后,在另一种方法中,我尝试添加人员,但由于人员中有一个部门对象,IT 将重复的部门添加到部门表中。

下面的代码并不完全是我所拥有的,因为我试图为这篇文章缩短它,但想法是一样的。

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();
4

1 回答 1

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

于 2013-06-07T12:06:41.453 回答