[英]Navigation Property in EF Core is NULL
有人可以指导我如何在下表中构建正确的属性导航吗?
我的数据库中有这些表:
然后我需要关联Status
表以获取每个表上的状态Name
这些是我的 model 类:
[Table("Companies")]
public class CompanyEntity
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public int Status_Id { get; set; }
public DateTime Created_Date { get; set; }
public DateTime Updated_Date { get; set; }
[ForeignKey("Status_Id")]
public Status Status { get; set; }
}
[Table("Customers")]
public class CustomerEntity
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public int Status_Id { get; set; }
}
[Table("Status")]
public class Status
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public Company Company { get; set; }
}
我的目标是当我获得所有使用DBContext
的Companies
或Customers
时,例如var companies = _dbContext.Companies.ToList()
。 我想获得Companies
和Customers
的每条记录的状态。 我不太确定如何为上述模型正确构建导航属性。
蒂亚!
更新#1
遵循以下建议后,是的, Status
不再是NULL
。 但是,它得到了错误的状态 ID。 它不使用Status_Id
,而是使用公司的Id
。 请看下面的片段。 该公司的状态为6
。
但是,如果您在第二个片段上注意到,状态为3
,即公司的Id
。
我在OnModelCreating
也有这段代码。
modelBuilder.Entity<Company>()
.HasOne<Status>()
.WithMany()
.HasForeignKey(p => p.Status_Id);
这就是我得到这种行为的原因。 但是如果我删除了这个, Status
属性就会得到NULL
。
您必须添加.Include()
方法才能在结果中加入您的状态表,如下所示:
_dbContext.Companies.Include(c => c.Status).ToList()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.