У меня есть таблица «Обучение», в которой есть столбец «CreatedBy», который имеет ссылочную целостность к таблице «Пользователь». Таким образом, «CreatedBy» на самом деле является «пользователем», представляющим пользователя, который вставил запись обучения.
Теперь, когда я добавляю новую сущность «Обучение», это «CreatedBy» - старый «Пользователь». Так что не стоит пытаться добавить пользователя. Но он терпит неудачу, потому что нарушает ограничение уникального ключа.
Вот код. Куда я иду не так?
public int AddEntity(Training entity, bool isSaveInstantly)
{
this.trainersDeskDBModel.Trainings.AddObject(entity);
if (isSaveInstantly)
{
this.trainersDeskDBModel.SaveChanges();
}
return entity.Id;
}
public int UpdateEntity(Training entity, bool isSaveInstantly)
{
this.trainersDeskDBModel.Trainings.ApplyCurrentValues(entity);
if (isSaveInstantly)
{
this.trainersDeskDBModel.SaveChanges();
}
return entity.Id;
}
public int Save(Training entity, bool isSavedInstantly)
{
IEnumerable<Training> training = this.trainersDeskDBModel.Trainings.Where(x => x.Id == entity.Id);
if (training != null && training.Count() > 0)
{
this.UpdateEntity(entity, isSavedInstantly);
}
else
{
this.AddEntity(entity, isSavedInstantly);
}
return entity.Id;
}