簡體   English   中英

使用TPH繼承的LINQ查詢-獲取派生類ICollection計數

[英]LINQ query using TPH inheritance - get derived class ICollection count

我試圖弄清楚如何獲取特定ProjectDoc.OfType上ProjectSummaryVotes的計數。 該查詢有效,但ProjectSummaryVote屬性為null,這意味着出現空值錯誤。 這可行嗎? 如果需要,我應該放棄TPH繼承嗎?

模型:

public class Project
{
    public int ProjectID { get; set; }
    public virtual ICollection<ProjectDoc> ProjectDoc { get; set; }

}
public abstract class ProjectDoc
{
    public int ProjectDocID { get; set; }
    public int ProjectID { get; set; }
    public string DocTitle { get; set; }
    public string Status { get; set; }
    public DateTime DateCreated { get; set; }

    public virtual Project Project { get; set; } 
    public virtual ICollection<Comment> Comment { get; set; }
}

public class Summary : ProjectDoc
{
    [DataType(DataType.MultilineText)]
    public string Text { get; set; }
    public ICollection<ProjectSummaryVote> ProjectSummaryVote { get; set; }
}
public class ProjectSummaryVote
{
    public int ProjectSummaryVoteID { get; set; }
    public int ProjectDocID { get; set; }
    public bool Vote { get; set; }
    public virtual Summary Summary { get; set; }
    public virtual User User { get; set; }
}

查詢:

 Project project = db.Projects
          .Include(i => i.User)
          .Include(i => i.ProjectDoc)
          .SingleOrDefault(x => x.ProjectID == id);

嘗試獲取引發錯誤的計數。

 var trueCount = Model.ProjectDoc.OfType<Literrater.Models.Summary>()
      .Where(s => s.Status == "Active")
      .SelectMany(v => v.ProjectSummaryVote.Where(s => s.Vote == true))
      .Count();

我對數據進行了重新建模,以便所有投票現在都成為單個投票模型的一部分。 這樣一來,我就可以將投票關系從派生模型移到主要模型中,從而可以輕松訪問數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM