1

我有一个非常奇怪的问题,我似乎无法在谷歌上找到答案。

我目前有以下 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它应该填充记录时。

我什至采用了 Entity Framework 生成的 SQL 并执行它,它成功地直接在数据库中返回了前景和活动事件。

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

如果您需要任何其他详细信息,请告诉我!

4

1 回答 1

0

尝试

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

var value = prospects.FirstOrDefault(p=>p.CampaignEvents.Any());
于 2013-05-15T19:32:27.530 回答