使用EF 6,Lazy Loading Enabled
在模型中設置爲True
。這裏是我的問題的一個例子:EF6,延遲加載未按預期工作
var agent = context.AgentDetail.Where(a => a.Agent.GroupCode == "1234");
運行將返回5個結果。如果在此之後我運行(僅用於測試目的)
var code = agent.FirstOrDefault().Agent.GroupCode;
我得到一個空引用異常,因爲Agent
是null
。
這裏是我的實體:
public partial class AgentDetail : Entity<int>
{
public Nullable<System.DateTime> Date { get; set; }
public string Name { get; set; }
public decimal Balance { get; set; }
...
public virtual Agent Agent { get; set; }
}
public partial class Agent : Entity<int>
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Agent()
{
this.AgentAspNetUsers = new HashSet<AgentAspNetUsers>();
this.AgentDetail = new HashSet<AgentDetail>();
}
public string GroupCode { get; set; }
...
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<AgentAspNetUsers> AgentAspNetUsers { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<AgentDetail> AgentDetail { get; set; }
}
怎麼可能給我5個結果在第一個查詢,然後呢?我無法弄清楚這裏有什麼問題,任何幫助將不勝感激。
顯示,您的實體在實體代理中的延遲加載應該是虛擬的。 – BWA
@BWA剛剛添加了他們。 – Antrim
看[this](http://stackoverflow.com/questions/22031536/ef-code-first-lazy-loading-not-working)和[this](http://stackoverflow.com/questions/21951367/ entity-framework-6-lazy-loading-not-working)也許它可以幫助你 – BWA