0

特定の ProjectDoc.OfType で ProjectSummaryVotes の数を取得する方法を見つけようとしています。クエリは機能しますが、ProjectSummaryVote 属性が null です。つまり、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();
4

1 に答える 1

0

すべての投票が単一の投票モデルの一部になるように、データを改造しました。これにより、投票関係を派生モデルからプライマリ モデルに移動できるようになりました。これにより、データへのアクセスが容易になります。

于 2013-01-12T18:56:07.213 に答える