首页 > 解决方案 > 实体框架返回的列表为空

问题描述

我有这两个类,Field并且Field2是一对多的关系。

当我尝试获取Field时,列表返回带有 id 和名称的记录,这是正确的。但试图阅读Field2fromField总是空的。

可能是什么原因?我已经尝试了一切。我可以在数据库等中看到 FK。

public class Field : IEntityBase
{
    public int Id { get; set; }
    public string Name { get; set; }

    [InverseProperty("Field")]
    public virtual ICollection<Field2> Field2 { get; set; }
}

public class Field2: IEntityBase
{
    public int Id { get; set; }
    public int FieldId { get; set; }
    [ForeignKey(nameof(FieldId))]
    public virtual Field Field { get; set; }
}

标签: c#entity-frameworkasp.net-coreentity-framework-core

解决方案


您需要使用 Include() 方法。看下面的例子,

using (var context = new MyContext())
{
    var list = context.Field
        .Include(f => f.Field2)    
        .ToList();    

    foreach (var field in list)
    {
        Console.WriteLine("Field Name: {0}", field.Name);
        foreach (var field2 in field.Field2)
        {
            Console.WriteLine("\tField 2 ID: {0}", field.Id);
        }
    }
}

实体框架包括


推荐阅读