我有以下查询以按包含日期获得结果:
var q = from x in db.TableX
where x.Timestamp.CompareTo(fromDate) >= 0
&& x.Timestamp.CompareTo(toDate) <= 0
select x;
我的TableX有多个外键。但是,当我调试时,我只看到其中一个被提取,而所有其他键都是null,即使我在DB中看到它们正确不是null并且使用ID连接到它们的外表。
public class TableX
{
public int Id { get; set; }
public string str1{ get; set; }
public Table2 t1{ get; set; }
public Table3 t2{ get; set; }
public Table4 t3{ get; set; }
public Table5 t4{ get; set; }
public Tablet5 t5{ get; set; }
}
答案 0 :(得分:1)
Sinse您正在使用延迟加载,您需要将导航属性定义为虚拟,并且您需要启用代理创建,以便EF可以在您的类周围创建代理并覆盖这些属性以在需要时加载。
public class TableX
{
public int Id { get; set; }
public string str1{ get; set; }
public virtual Table2 t1{ get; set; }
public virtual Table3 t2{ get; set; }
public virtual Table4 t3{ get; set; }
public virtual Table5 t4{ get; set; }
public virtual Tablet5 t5{ get; set; }
}