【问题标题】:One-To-Many relationship in Entity Framework: Why foreign key value is null? [duplicate]实体框架中的一对多关系:为什么外键值为空? [复制]
【发布时间】:2020-02-04 20:21:14
【问题描述】:

假设每家公司都有一些照片(一对多的关系)。

public class Company
{
    [Key]
    public int companyID { get; set; }
    public string name { get; set; }
    // FOREIGN KEY One-To-Many relationship
    public ICollection<Photo> PhotoCollection { get; set; }
}

public class Photo
{
    [Key]
    public int photoID { get; set; }
    public string path { get; set; }
}

我的数据库有一些记录,似乎是正确的。

公司表:

CompanyID | Name
----------+---------------------
    1     | BestCompany

照片桌:

PhotoID | Path       | CompanyID (foreign key)
--------+------------+------------------------
    1   | photo1     |      1
    2   | photo2     |      1

让公司进入一个变量可以正常工作,我可以进入它的普通列(如 companyID):

var company = await _context.Company
                            .Where(p => p.companyName == "BestCompany")
                            .FirstOrDefaultAsync();

很遗憾,photos 变量为空:

List<Photo>photos = company.PhotoCollection;

为什么它是空的?我做错了什么?

我使用 ASP.NET Core 3 和 Entity Framework Core 3.1.1。

【问题讨论】:

  • 您是否尝试过在照片上添加显式外键(companyID)或导航属性(company)?

标签: c# linq asp.net-core entity-framework-core


【解决方案1】:

您需要指定 EF 以包含孩子。

var company = await _context.Company.Where(p => p.companyName == "BestCompany").Include(p=> p.PhotoCollection).FirstOrDefaultAsync();

【讨论】:

  • 非常感谢。您的解决方案已解决。
猜你喜欢
  • 2018-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-24
相关资源
最近更新 更多