Это мой второй день с EntityFramework и у меня есть еще одна проблема:Загрузка связанные объекты с Entity Framework 6
Я спасаю своего рода конфигурации в моей базе данных. Это хорошо работает: Это мой класс:
public class Configuration : IConfiguration
{....
public ICollection<EmailClassificationPattern> emailClassificationPatterns { get; set; }
...
}
Я получаю две таблицы dbo.Configurations и dbo.EmailClassificationPattern с. dbo.EmailClassificationPattern s имеет 4 записи, и каждая ссылка правильно соответствует dbo.Configurations через поле под названием Configuration_ID.
Я загрузка конфигурации следующим образом:
var configuration = (Configuration)mycontext.Configurations.Where(x =>
x.configurationName=="Default").FirstOrDefault();
Тогда я пытаюсь получить доступ к emailClassificationPatterns членов это было:
var relevantSubjectList = configuration.emailClassificationPatterns.
Select(x => x.subjectPatternForMailCollection);
Но я получаю ReferenceNullException потому emailClassificationPatterns является NULL. Почему структура привязки не загружает ссылочных членов? У меня нет возможности включить ссылочный элемент, как IntelliSense не обеспечивает .Inlcude() (как это :)
var configuration = (Configuration)mycontext.Configurations.Where(x =>
x.configurationName=="Default").Include("emailClassificationPattern")
ли я ИМЕЕМ, чтобы позволить eagerLoading? Если да - как? Есть ли другой способ доступа к ссылочным членам и есть ли какая-то лучшая практика?
С наилучшими пожеланиями
Sebastian
Есть ли еще одна возможность, когда я не должен указывать, какой класс Child-Memeber-Class также должен быть загружен? Я бы ожидал, что EF узнает, какие дочерние элементы необходимы (на основе кода) и динамически загружает этот элемент ... – sebastian87
Нет. Вы должны явно загрузить их. он также довольно умен, потому что в огромных реляционных базах данных может быть множество связанных дочерних (дочерних и дочерних) объектов. –
Но ... то, что вы также можете сделать, это просто загрузить объекты конфигурации, и когда вы перечислите некоторые дочерние объекты конфигурации, они будут загружаться по требованию (точно в срок), если я его правильно помню. Google - ваш друг! Много документации о (нетерпеливой) загрузке в EF;) –