EF 4.3& CodeFirst:一对多导航属性在没有实体代理的情况下加载为空值

时间:2012-03-18 09:14:58

标签: c# entity-framework-4.1 code-first entity-framework-4.3

接下来是问题 - 我有2个具有一对多关系的实体:

public class Schema
{
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public Guid SchemaId { get; set; }

    public string Name { get; set; }

    public string Content { get; set; }

    public string ElementName { get; set; }

    public List<Element> Elements { get; set; }
}

public class Element
{
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public Guid ElementId { get; set; }

    public Guid SchemaId { get; set; }

    public string Content { get; set; }

    public Schema InSchema { get; set; }
}

和项目引用了EntityFramework v4.3包。 在数据库中存储了一些带有相关元素的Schema后,我加载了Schemas列表(例如,var schemasList = context.Schemas.ToList())。在此之后,在Elements中的Schema的所有实例中,属性值为null。现在我通过为实体添加动态代理来解决这个问题,但是这在许多开发方面有一些不良影响(例如,保存可能导致“多个上下文的实体跟踪”错误)。 感谢您对此问题的任何帮助。

1 个答案:

答案 0 :(得分:2)

您在查询中使用过.Include吗?

from s in Schema.Include(sc=>sc.Elements)
select s;

请注意,您需要

using System.Data.Entity 

使用include