0
我想弄清楚如何獲取特定ProjectDoc.OfType的ProjectSummaryVotes的計數。查詢有效,但ProjectSummaryVote屬性爲null,這意味着我得到一個空值錯誤。這是可行的嗎?如果我需要這樣做,我應該放棄TPH繼承嗎?使用TPH繼承的LINQ查詢 - 獲得派生類ICollection count
型號:
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();
你願意分享這個錯誤嗎? – Jacco
錯誤只是「值不能爲空」。它沒有連接ProjectSummaryVote記錄。摘要有三張選票。不知道如何解決它。 –
Literrater.Models.Summary的外觀如何? –