Оператор INSERT платформы ORM Entity Framework конфликтует с исключением ограничения FOREIGN KEY

У меня есть следующие классы

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 конфликтовал с ограничением FOREIGN KEY \FK_dbo.Employees_dbo.Departments_DepartmentId. Конфликт произошел в базе данных \Entities\, таблица \dbo.Departments\, столбец Id

Кто-нибудь может мне помочь, пожалуйста! Спасибо

1 ответ

Решение

Кажется, что в какой-то момент вы пытаетесь сохранить Employee без
Department, Поэтому отношения рушатся.

Другие вопросы по тегам