EF Core:外键返回null值

时间:2017-04-30 17:11:15

标签: c# asp.net entity-framework xamarin

我正在尝试以xamarin格式访问外键(所有者),但它只返回null。根据堆栈中的许多其他问题,似乎我必须使用延迟加载或Eager加载来从外键获取数据。

由于延迟加载尚未在Core中实现,我尝试使用Eager Loading,但我仍然在xamarin表单和后端都获得null值。

我的模特:

public class Building
{
    public int Id { get; set; }
    public string BuildingName { get; set; }
    public string Address { get; set; }
    public int BuildingYear { get; set; }
    public bool BuildingBool { get; set; }
    public ApplicationUser Owner { get; set; }
}

我的存储库:

public IEnumerable<Building> GetAll()
{
    return _context.buildings.Include(b => b.Owner).ToList();
}

我的控制器:

 public IEnumerable<Building> Get(Building value)
 {
     return _BuildingRepository.GetAll();
 }

我的DbContext:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
    {
    }

    public DbSet<Building> buildings { get; set; }

    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
    }
}

这是数据库中数据的样子: enter image description here

我的存储库中是否需要除Include(b => b.Owner)以外的其他内容才能使其正常工作?

1 个答案:

答案 0 :(得分:2)

我没有在您的建筑模型中看到外键属性,只看到导航属性。

我认为你应该包括:

public int OwnerId { get; set; }
在建筑类中