[英]EF Code First improving performance for self referencing, one to many relationships
[英]EF Code First Many One-To-One-Relationships
我开始在EF Code-First和WCF Service方面积累经验,遇到了一个我无法使用有关此问题的所有指南解决的问题:
我得到以下代码结构
[DataContract]
public class Feed
{
public int Id { get; set; }
public int LanguageId { get; set; }
public int CategoryId { get; set; }
public int TypeId { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public FeedCategory Category { get; set; }
[DataMember]
public FeedType Type { get; set; }
[DataMember]
public string FeedUrl { get; set; }
[DataMember]
public Language Language { get; set; }
}
[DataContract]
public class FeedCategory
{
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
public DateTime Registered { get; set; }
[DataMember]
public IList<Feed> Feeds { get; set; }
}
[DataContract]
public class FeedType
{
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
public DateTime Registered { get; set; }
public IList<Feed> Feeds { get; set; }
}
[DataContract]
public class Language
{
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string CountryName { get; set; }
[DataMember]
public string CountryCode { get; set; }
[DataMember]
public string ShortCountryCode { get; set; }
}
但是,当我想获取所有提要时,将不会收到所有依赖项,因此Category , Type和Language为null,我不知道如何解决。
还有谁知道该怎么做吗?
我将根据我的经验来尝试正确回答您的问题(不久前,因为我的公司不再使用EF)。
首先,您可能需要将密钥应用于实体。 我是在OnModelCreating方法中完成的。
modelBuilder.Entity<FeedType>().HasKey(k => k.Id );
其次,我相信您必须设置这些实体之间的映射,这些映射也可以在OnModelCreating方法中完成。
modelBuilder.Entity<FeedType>().HasRequired<Feed>(h => h.Feed).WithOptional(x => x.FeedType);
最后,您需要启用急切加载或在查询中使用.include,以便在父对象被检索时检索子对象。
欢迎进行所有更正,因为已经有一段时间了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.