使用EF 6时,
运行这个将返回5个结果。如果之后我运行(仅用于测试目的)
Lazy Loading Enabled
在模型中被设置为True
。以下是我问题的一个示例:var agent = context.AgentDetail.Where(a => a.Agent.GroupCode == "1234");
运行这个将返回5个结果。如果之后我运行(仅用于测试目的)
var code = agent.FirstOrDefault().Agent.GroupCode;
我遇到了空引用异常,因为Agent
为空。
以下是我的实体:
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个结果呢?我无法弄清楚出了什么问题,任何帮助将不胜感激。
Include(a => a.Agent)
。但是没有任何改变。 - erictrigo