2014-10-05 4 views
0

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

Я 2 простых таблиц сопоставляются с Entity Framework в моем решении:

Сотрудники:

emp_id INT 
first_name VARCHAR 
last_name VARCHAR 
department INT (FOREIGN KEY MAPPED TO departments.dept_id) 

и

Отделы:

dept_id INT 
department_name VARCHAR 

Используя следующий код, я хочу записать в базу данных.

var record = db.employees.Create(); 

string test = "test"; 

record.first_name = test; 
record.last_name = test; 
record.department = 1; 

db.employees.Add(record); 
db.SaveChanges(); 

Я получаю сообщение об ошибке сообщение об ошибке:

Entities in "'DBContextContainer.employees' participate in the 'employeedepartment' relationship. 0 related 'department' were found. 1 'department' is expected."

по методу db.SaveChanges(). Может кто-нибудь, пожалуйста, объясните мне, как я могу разрешить или устранить эту проблему?

Обновление: В таблице отделов есть запись в таблице dept_id, и я все еще получаю сообщение об ошибке.

+0

Существует ли существующий отдел с идентификатором 1 в таблице отделов? – Abbath

+0

Да, есть запись в таблице отделов с dept_id из 1 – user3648426

+0

показать нам содержимое базы данных? По какой-то причине EntityFramework не может найти Департамент с 'dept_id' 1. – gldraphael

ответ

1

Прежде всего необходимо добавить поле в таблицу Departments, так как Departments является родительской таблицей (сотрудники зависят от отделов в соответствии с вашей структурой таблицы). Вы не можете добавить employee с department, который не имеет соответствующей записи в таблице Departments.

+0

Привет, я уже сделал. В таблице отделов есть запись в таблице dept_id из 1 – user3648426

+2

@ user3648426. Почему в отделе «Сотрудники» есть varchar и 'Departments' int. Они должны быть одинаковыми. – gldraphael

+0

Привет, мой плохой, я сделал ошибку в сообщении, но исправил ее. Он (employee.department) на самом деле является INT как в моей модели, так и на db. – user3648426

Смежные вопросы