实体框架 - 导航属性不加载

Bic*_*ick 5 entity-framework foreign-keys eager-loading entity-framework-4

我有以下关系

在此输入图像描述

public partial class SharedResource : DomainEntity
{
    public System.Guid Id { get; set; }
    public System.Guid VersionId { get; set; }

    public virtual PackageVersion PackageVersion { get; set; } // tried it noth with and without virtual
}
Run Code Online (Sandbox Code Playgroud)

现在,我使用加载SharedResource

SharedResource sharedResource = Get(shareKey)
Run Code Online (Sandbox Code Playgroud)

sharedResource.PackageVersion == null. 
Run Code Online (Sandbox Code Playgroud)

虽然VersionId不为null

context.Configuration.LazyLoadingEnabled = false;
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能加载它

Sla*_*uma 6

LazyLoadingEnabled必须是true,而不是false:

context.Configuration.LazyLoadingEnabled = true;
Run Code Online (Sandbox Code Playgroud)

true如果您根本没有设置LazyLoadingEnabled,则为默认值.

PackageVersion属性必须是virtual为此属性启用延迟加载.

或者,您可以直接在查询中包含该属性:

SharedResource sharedResource = context.SharedResource
    .Include("PackageVersion")
    .SingleOrDefault(s => s.Id == shareKey);
Run Code Online (Sandbox Code Playgroud)