LINQ查询:获取包括外键在内的所有字段

时间:2012-07-20 03:16:30

标签: c# .net linq entity-framework

我有以下查询以按包含日期获得结果:

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; } 
        }

1 个答案:

答案 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; } 
     }