代码优先空导航属性

本文关键字:导航 属性 代码 | 更新日期: 2023-09-27 18:13:39

我有一个很奇怪的问题,我似乎在谷歌上找不到答案。

我目前有以下Code First/DB结构:

public class Prospect {
    [Key]
    public int ProspectId { get; set; }
    public int ProspectCompanyId { get; set; }
    public int? ImportUserId { get; set; }
    public int? ProspectUserId { get; set; }
    public int? SalesUserId { get; set; }
    public int? CampaignId { get; set; }
    [ForeignKey("CampaignId")]
    public virtual ICollection<CampaignEvent> CampaignEvents { get; set; }
    [ForeignKey("CampaignId")]
    public virtual Campaign Campaign { get; set; }
}
public class CampaignEvent
{
    [Key]
    public int CampaignEventId { get; set; }
    public int CampaignId { get; set; }
    public int UserId { get; set; }
    public string ActionType { get; set; }
    public string ActionSubject { get; set; }
    public string ActionTemplate { get; set; }
}

问题是,当我尝试返回如下查询:

var prospects = db.Prospects.Include("CampaignEvents");

prospects.First().CampaignEvents是空的-当它应该被记录填充时。

我甚至采取了由实体框架生成的SQL并执行它,它成功地直接在数据库中返回前景和活动事件。

我不知道该怎么做——这很奇怪,我没有收到任何错误,只是一个空集合。

请让我知道如果你需要任何额外的细节!

代码优先空导航属性

try with

var prospects = db.Prospects.Include("CampaignEvents");
var value = prospects.FirstOrDefault(p=>p.CampaignEvents.Any());