例如:
1 class Employee
2 {
3 Guid Id{get;set;}
4 .
5 .
6 Department department{get;set;}
7
8 }
9 class Department
10 {
11 Guid Id{get;set;}
12 string Name{get;set;}
13 }
14
15 var depart=dbContext.Departments.Find(...);//获取到一个已存在的Department
16 Employee employee=new {...};
17 employee.department=depart;
18
19 dbContext.Employees.Add(employee)
20 dbContext.SaveChanges();
21
22 会报错 不能在对象“dbo.Department”中插入重复键,违反了主键约束。
新增Employee对象的时候 ,EF 会去新增一条Department对象。但这个Department对象数据库已经有了。
报错了。。
想请问这种情况的正常写法是怎样的?
4 回答
慕容森
TA贡献1853条经验 获得超18个赞
public class Employee
{
public virtual Department Department { get;set;}
}
public class Department
{
public virtual ICollection Employees { get; set; }
}
// Insert
var department = dbContext.Departments.FirstOrDefault(x => ...);
if (department != null)
{
department.Employees.Add(new Employee() { });
}
dbContext.SaveChanges();
你试试行不行?
还有,贴代码的时候最好贴完整点,不然不好分析问题。
- 4 回答
- 0 关注
- 562 浏览
添加回答
举报
0/150
提交
取消