EF7 beta5:外键返回空值 [英] EF7 beta5: Foreign Key returns null value

查看:80
本文介绍了EF7 beta5:外键返回空值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用ASP.NET5和Entity Framework 7.0.0-beta 5创建了一个API.

I have created an API using ASP.NET5 and Entity Framework 7.0.0-beta 5.

我创建了Model,DbContext和存储库,当我尝试从数据库中检索数据时,我获得了除外键数据之外的所有数据.

I have the Model, DbContext and the Repository created, and when I try to retrieve data from my database I get all the data, except the foreign key data.

外键值始终为空.

DbContext

public class MrBellhopContext : DbContext
{

    public DbSet<Company> Company { get; set; }
    public DbSet<CompanyStatus> CompanyStatus { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Company>().Table("Company");
        modelBuilder.Entity<Company>().Key(c => c.CompanyId);
        modelBuilder.Entity<Company>().Index(c => c.Name);
        modelBuilder.Entity<Company>().Reference(c => c.Status).InverseReference().ForeignKey<CompanyStatus>(c => c.StatusId);

        modelBuilder.Entity<CompanyStatus>().Table("CompanyStatus");
        modelBuilder.Entity<CompanyStatus>().Key(c => c.StatusId);

        base.OnModelCreating(modelBuilder);
    }

}

模型

public class Company
{

    public int CompanyId { get; set; }

    public string Name { get; set; }

    public string Email { get; set; }

    public CompanyStatus Status { get; set; }

    public DateTime CreatedAt { get; set; }

    public DateTime UpdatedAt { get; set; }

}

存储库(仅获取所有方法)

    public IEnumerable<Company> GetAll()
    {
        return _dbcontext.Company.ToList();
    }

使用HTTP GET检索数据,我获得了所有数据,但是外键的值为null:

Retrieving data using HTTP GET I get all the data, but the value of the foreign key is null:

JSON响应:

0:  {
CompanyId: 1
Name: "Hotel Amura"
Email: "info@hotelamura.com"
Status: null
CreatedAt: "2015-01-01T00:00:00"
UpdatedAt: "2015-01-01T00:00:00"
}

有人知道如何使用EF7查询获取外键表数据吗?

推荐答案

EF7中尚未实现延迟加载.请使用以下查询来热切加载相关实体.

Lazy loading isn't implemented yet in EF7. Use the following query to eagerly-load the related entities instead.

_dbcontext.Company.Include(c => c.Status).ToList();

这篇关于EF7 beta5:外键返回空值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆