Entity framework 4.3 с требуемой ассоциацией

У меня очень странное поведение с EF code first approach и ассоциациями. У меня есть две сущности:

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();

Я получаю исключение, что поле Required не инициализировано. Но оно есть, просто не загружено. Я не хочу писать везде явные include для свойств, когда я использую эту сущность. Что я могу сделать, чтобы решить эту проблему? Exceptoin details

UPDATE

Причина, по которой я уверен, что это проблема ленивой загрузки, заключается в следующем:

        var primaryRegion = context.Regions
                                   .Include(x => x.KpiSection)
                                   .Single(x => x.RegionId == id);

Решает проблему, но это определенно ужасное решение.

5
задан Sly 16 February 2012 в 11:24
поделиться