Я очень странное поведение с подходом и ассоциациями кода EF.У меня есть две сущности:
public class GlobalKpiSectionn
{
public GlobalKpiSection()
{
this.Regions = new HashSet<Region>();
}
public virtual ICollection<Region> Regions { get; protected set; }
}
public class Region
{
public int RegionId { get; set; }
public bool IsMain { get; set; }
[Required]
public virtual GlobalKpiSection KpiSection { get; set; }
}
Мне нужен обязательный атрибут для свойства KiSection, чтобы получить каскадное удаление.
Проблема заключается в следующем - в этом коде:
var mainRegion = context.Regions.Single(x => x.RegionId == id);
mainRegion.IsMain = true;
context.SaveChanges();
Я получаю исключение, что Обязательное поле не инициализировано.Но это присутствует просто не загружен.Я не знаю, что писать везде, где явно указаны свойства, когда я использую эту сущность.Что я могу сделать, чтобы преодолеть это?
ОБНОВЛЕНИЕ
Причина, по которой я уверен, что проблема с его отложенной загрузкой заключается в том, что:
var primaryRegion = context.Regions
.Include(x => x.KpiSection)
.Single(x => x.RegionId == id);
Решает проблему, ноэто определенно ужасное решение.