EF没有回馈课程

时间:2016-07-27 10:46:54

标签: c# entity-framework asp.net-core-mvc

如果我这样做:

var organisationList = _context.OrganisationCategory.ToList();

它只返回没有组织和类别的列表。它没有回馈组织和类别模型,但我得到了一个列表:

1, null, null
2, null, null
3, null, null

我想我犯了一个错误?在数据库中是组织的ID和正确设置的类别。

OrganisationCategory模型:

public class OrganisationCategory
{
    public int ID { get; set; }
    public Organisation Organisation { get; set; }
    public Category Category { get; set; }

    public OrganisationCategory() { }

    public OrganisationCategory(Organisation Organisation, Category Category)
    {
        this.Organisation = Organisation;
        this.Category = Category;
    }
}

ApplicationDbContextMOdelSnapshot.cs:

        modelBuilder.Entity("Implicietmeten.Models.Organisations.Categories.OrganisationCategory", b =>
            {
                b.Property<int>("ID")
                    .ValueGeneratedOnAdd();

                b.Property<int?>("CategoryID");

                b.Property<int?>("OrganisationID");

                b.HasKey("ID");
            });

2 个答案:

答案 0 :(得分:6)

实体框架核心仍然不支持延迟加载,因此您只能使用这样的预先加载:

var organisationList = _context.OrganisationCategory.Include(x => x.Organization).Include(x => x.Category).ToList();

答案 1 :(得分:1)

尝试访问相关实体时应使用virtual关键字。这将允许实体框架在第一次访问实体时使用延迟加载来加载实体。

public class OrganisationCategory
{
    public int ID { get; set; }
    public virtual Organisation Organisation { get; set; }
    public virtual Category Category { get; set; }

    public OrganisationCategory() { }

    public OrganisationCategory(Organisation Organisation, Category Category)
    {
        this.Organisation = Organisation;
        this.Category = Category;
    }
}