这是我第二天使用EntityFramework,我还有另外一个问题:
我正在将某种配置保存到我的数据库中。这很好用: 这是我的班级:
public class Configuration : IConfiguration
{....
public ICollection<EmailClassificationPattern> emailClassificationPatterns { get; set; }
...
}
我得到两个表 dbo.Configurations 和 dbo.EmailClassificationPattern 。 dbo.EmailClassificationPattern 有4个条目,每个条目通过名为 Configuration_ID 的字段正确引用 dbo.Configurations 。
我正在以这种方式加载配置:
var configuration = (Configuration)mycontext.Configurations.Where(x =>
x.configurationName=="Default").FirstOrDefault();
然后我试图访问成员emailClassificationPatterns这是:
var relevantSubjectList = configuration.emailClassificationPatterns.
Select( x => x.subjectPatternForMailCollection);
但是我得到一个ReferenceNullException,因为 emailClassificationPatterns 是NULL。为什么enttity框架不会加载引用的成员?我没有可能包含引用的成员,因为IntelliSense没有提供.Inlcude()(像这样:)
var configuration = (Configuration)mycontext.Configurations.Where(x =>
x.configurationName=="Default").Include("emailClassificationPattern")
我有来启用eagerLoading吗?如果是 - 如何?是否有其他方式来访问引用的成员,是否有某种最佳实践?
祝你好运
塞巴斯蒂安
答案 0 :(得分:1)
Include
语句出现在Where
之前。这将加载“子”实体。像这样:
var configuration = Configuration)mycontext.Configurations.Include("emailClassificationPattern").Where(x =>
x.configurationName=="Default")