Ошибка при вставке внешнего ключа отдела в таблицу Employee - PullRequest
0 голосов
/ 24 февраля 2019

Я новичок в Entity Framework.Я хочу вставить сотрудников вместе с отделом в качестве внешнего ключа, но я получаю следующую ошибку при добавлении записей:

Оператор INSERT конфликтует с ограничением FOREIGN KEY \ "FK_dbo.Employees_dbo.Departments_DepartmentId \",Конфликт произошел в базе данных \ "EmpDB \", таблице \ "dbo.Departments \", столбце "Id". \ R \ nОтчет был прерван.

Отдел класс:

namespace DbSet_Exmp.Models
{
    public class Department
    {
        public int Id { get; set; }
        public string DeptName { get; set; }
        public virtual ICollection<Employee> Employees { get; set; }
    }
}

сотрудник класс:

namespace DbSet_Exmp.Models
{
    public class Employee
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Contact { get; set; }
        public int Salary { get; set; }
        public int DepartmentId { get; set; }
        public virtual Department Department { get; set; }
    }
}

DbContext класс:

public class EmpDbContext:DbContext
{
    public EmpDbContext() : base("name=myDBConString")
    {
        Database.SetInitializer(new DBInitializer());
    }

    public DbSet<Department> Departments { get; set; }
    public DbSet<Employee> employees { get; set; }
}

Индекс действие:

public ActionResult Index()
{            
    using (var context = new EmpDbContext())
    {
         Employee objEmp = new Employee() { Name = "Swara", Contact = "123569", Salary = 15000, DepartmentId = 2 };
         context.employees.Add(objEmp);
         context.SaveChanges();               
    }

    return View();
}

1 Ответ

0 голосов
/ 24 февраля 2019

Обычно эта ошибка выдается, когда вы присваиваете значение ForeignKey, но в таблице ForeignKey таких данных нет с этим значением.

В вашем случае Department с Id = 2 в вашей Department таблице.Так что вы можете проверить это в своей таблице Departement.

...