Как мне настроить свойство, чтобы при использовании SaveChanges сохранялось отношение «многие к одному», и я не получал оператор: INSERT, конфликтующий с ошибкой ограничения FOREIGN KEY ....
Довольно просто, у меня есть Ad и AdType, где много объявлений для одного AdType. В объявлении есть недвижимость:
public class Ad
{
public Int32 AdTypeId { get; set; }
public virtual AdType AdType { get; set; }
}
Для покрытия этих отношений.
Когда я делаю это:
someAd.AdType = someAdType;
Свойство установлено просто отлично, а AdTypeId - нет. Не беспокойтесь, так как я предполагаю, что это будет нормально, чтобы сохранить.
context.SaveChanges();
Проблема в том, что на данный момент он пытается сохранить значение 0 в столбце AdTypeId (вызывая проблему внешнего ключа) вместо использования объекта, которому присвоено свойство AdType, чтобы выяснить, что он должен вставить в столбец AdTypeId.
Вещи, которые я знаю:
- На данный момент someAdType
сохранен / имеет идентификатор.
- Свойство AdType установлено правильно.
- AdTypeId равен 0.
- В базе данных существует отношение внешнего ключа.
- AdTypeId - это первичный ключ.
- Для отложенной / отложенной загрузки установлено значение true
На самом деле я не пытался изменить AdType, так как он настроен на ленивую загрузку.