实体框架核心外键不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实体框架核心外键不起作用相关的知识,希望对你有一定的参考价值。

   base.OnModelCreating(builder);
  builder.Entity<MottoMobilIdentityUser>()
    .HasIndex(b => b.SeoUrl)
    .IsUnique();
  builder.Entity<Company>()
    .HasOne(p => p.City)
    .WithMany(b => b.Companies)
    .HasForeignKey(p => p.CityId);

我的视图页面是@Model.Company.City.Name

但我有一个空错误

而我的Controller类填充模型模型不为null,因为另一个数据是有效的

public async Task<IActionResult> Details(int id)
{

  var data = await _companyApiController.GetCompanyById(id);
  var model = new AdminDetailsViewModel
  {

    Company = data,

  };
  return View(model);
}

和我的模型

 public int CityId { get; set; }

[ForeignKey("CityId")]
public virtual City City { get; set; }
答案

你有空值导致它的懒惰评估。只需使用Include()context.Companies.Where(r=>r.Id == Id).Include(r=>r.City).First()

以上是关于实体框架核心外键不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 迁移外键不起作用

多行中的cakephp外键不起作用

两个实体之间的共享主键不起作用

理解实体框架核心外键关系

在实体框架核心中的 SelectMany + Select 之后“包含”不起作用

在实体框架 6 中不起作用的实体之间的一对一关系