C# 实体框架4.3.1的导航属性为空

C# 实体框架4.3.1的导航属性为空,c#,.net,entity-framework,navigation-properties,C#,.net,Entity Framework,Navigation Properties,我使用的是实体框架4.3.1,导航属性有问题 在我的上下文中,我启用了延迟加载: public MyContainer() : base(ConnectionString, ContainerName) { this.ContextOptions.LazyLoadingEnabled = true; } 此外,我还将该属性设置为虚拟(实际上我是从模型生成的): 这是在一个名为Ride的实体中。但是,当我访问myContext.Ride.Driver时,它是空的。这很奇怪

我使用的是实体框架4.3.1,导航属性有问题

在我的上下文中,我启用了延迟加载:

public MyContainer()
        : base(ConnectionString, ContainerName)
{
    this.ContextOptions.LazyLoadingEnabled = true;
}
此外,我还将该属性设置为虚拟(实际上我是从模型生成的):

这是在一个名为Ride的实体中。但是,当我访问myContext.Ride.Driver时,它是空的。这很奇怪,因为当我在运行时检查骑乘实体时,我可以看到外键实际上是用预期驾驶员的ID填充的

还有什么我需要做的吗

当我生成一个新的骑乘时,我设置了DriverID,但随后我从中获取ID的驾驶员不会自动添加为导航属性



好的,我只是自己解决了这个问题,所以我将分享答案:我需要将驱动程序实体附加回上下文。myContext.Driver.Attach(驱动程序)。然后我可以做:骑。驾驶员=驾驶员,而不是骑。DriverID=驾驶员。DriverID

在代码中,我正在这样做:

db.Driver.Attach(Driver); // Driver is a public property in my class
myNewRide.Driver = Driver;
db.SaveChanges();

好的,我只是自己解决了这个问题,所以我将分享答案:我需要将驱动程序实体附加回上下文。myContext.Driver.Attach(驱动程序)。然后我可以做:Ride.Driver=Driver而不是Ride.DriverID=Driver.DriverID

好的,我只是自己解决了它,所以我将分享答案:我需要将Driver实体附加回上下文<代码>myContext.Driver.Attach(驱动程序)。然后我可以做:
Ride.Driver=Driver
而不是
Ride.DriverID=Driver.DriverID
。请写下这个作为答案,然后标记它,这样每个人都会看到它被解决了,谢谢。:-)几乎就是我的意思。你看到问题下面的“答案栏”了吗?我想把你的答案放在那里,因为这样你就可以点击“标记为答案”。
db.Driver.Attach(Driver); // Driver is a public property in my class
myNewRide.Driver = Driver;
db.SaveChanges();