实体框架插入对象在链接表中插入记录

时间:2013-06-07 12:04:25

标签: entity-framework entity-framework-4.1 entity-framework-5

我正在尝试将一些数据添加到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();

1 个答案:

答案 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