С приведенным ниже кодом, когда я обновляю объект Employee
, в таблицу Language
добавляется новая запись, и я не понимаю, почему. LanguageId
имеет значение, и я установил Language
(см. информацию в коде). Запись Employee
обновляется как LanguageId
вновь созданной.
Что я делаю неправильно?
public class Employee
{
public virtual int EmployeeId { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual int LanguageId { get; set; }
public virtual Language Language { get; set; }
}
public class Language
{
public virtual int LanguageId { get; set; }
public virtual string Name { get; set; }
public virtual string Code { get; set; }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Employee>()
.HasRequired(t => t.Language);
}
private void Update(Employee employee)
{
//LanguageId in employee object has a value, OK
//Language is null
employee.Login = employee.Login.ToUpper();
employee.Language = myRepository.Get(employee.LanguageId);
myRepository.Update(employee);
}