una*_*dan 1 c# entity-framework-core asp.net-core
我使用ASP.NET5和Entity Framework 7.0.0-beta 5创建了一个API.
我创建了Model,DbContext和Repository,当我尝试从数据库中检索数据时,除了外键数据外,我得到了所有数据.
外键值始终为null.
的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);
}
}
Run Code Online (Sandbox Code Playgroud)
模型
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; }
}
Run Code Online (Sandbox Code Playgroud)
存储库(只获取所有方法)
public IEnumerable<Company> GetAll()
{
return _dbcontext.Company.ToList();
}
Run Code Online (Sandbox Code Playgroud)
使用HTTP GET检索数据我获取所有数据,但外键的值为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"
}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何使用EF7查询获取外键表数据?
EF7中尚未实现延迟加载.使用以下查询来急切加载相关实体.
_dbcontext.Company.Include(c => c.Status).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1263 次 |
| 最近记录: |