2017-01-13 38 views
0

我有以下类O.R.M.实体框架INSERT语句冲突与外键约束的例外

public class Employee 
{ 
    public Guid Id { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string Gender { get; set; } 
    public int Salary { get; set; } 
    public string PhoneNumber { get; set; } 
    public Guid DepartmentId { get; set; } 
    public virtual Department Department { get; set; } 
    public int Deleted { get; set; } 

    public bool IsDeleted() 
    { 
     return this.Deleted == 1 ? true : false; 
    } 

    public void MarkAsDeleted() 
    { 
     this.Deleted = 1; 
    } 

    public string GetFullName() 
    { 
     return this.FirstName + " " + this.LastName; 
    } 
} 

public class Department 
{ 
    public Department() 
    { 
     this.Employees = new List<Employee>(); 
    } 

    public Guid Id { get; set; } 
    public string Name { get; set; } 
    public virtual List<Employee> Employees { get; set; } 
    public int Deleted { get; set; } 

    public bool IsDeleted() 
    { 
     return this.Deleted == 1 ? true : false; 
    } 

    public void MarkAsDeleted() 
    { 
     this.Deleted = 1; 
    } 

    public void AddEmployee(Employee employee) 
    { 
     this.Employees.Add(employee); 
    } 

    public void RemoveEmployee(Employee employee) 
    { 
     this.Employees.Remove(employee); 
    } 
} 

我想创建一个一对多的关系,在我的配置我有这个

下面的代码
[modelBuilder.Entity<Department>() 
      .HasMany(l => l.Employees). 
       WithRequired(r => r.Department). 
       HasForeignKey(r => r.DepartmentId); 

但它抛出一个异常

INSERT语句冲突与外键约束\ FK_dbo.Employees_dbo.Depa rtments_DepartmentId。冲突发生在数据库\ Entities \,表\ dbo.Departments \中,列Id

任何人都可以帮我吗?谢谢

回答

3

看来,在某些时候,你试图保存一个Employee没有
Department。因此,这种关系失败了。

相关问题