2013-03-01 75 views
0

我有一个代码一流EF简单关系和外键

public class test 
{   
    public int ID { get; set; } 
    public int ManagerID { get; set; } 


    [ForeignKey("ManagerID")] 
    public Person Manager { get; set; } 
} 

在创建正确databas表,但后来我尝试访问

pTest.Manager it returns null 

在数据库表中的测试场经理ID具有正确的身份证号码。

回答

1

使Manager属性为虚拟,以便EF可以延迟加载它或使用急切加载(使用Include方法)。

public class test 
{   
    public int ID { get; set; } 
    public int ManagerID { get; set; } 


    [ForeignKey("ManagerID")] 
    public virtual Person Manager { get; set; } 
} 
+0

Tnx做了诡计 - 但在那种情况下 - 这个虚拟是什么意思? – SpoksST 2013-03-01 06:51:06

+0

@SpoksST EF将为您的类创建一个子类型(代理)并覆盖属性注入逻辑以使属性延迟。 – Eranga 2013-03-01 06:59:15