Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用TPH继承的LINQ查询-获取派生类ICollection计数_C#_.net_Entity Framework_Linq To Entities - Fatal编程技术网

C# 使用TPH继承的LINQ查询-获取派生类ICollection计数

C# 使用TPH继承的LINQ查询-获取派生类ICollection计数,c#,.net,entity-framework,linq-to-entities,C#,.net,Entity Framework,Linq To Entities,我正在试图弄清楚如何获得特定项目的ProjectSummary票数Doc.OfType。查询可以工作,但ProjectSummaryVote属性为null,这意味着我得到一个null值错误。这可行吗?如果我需要这样做,我应该放弃TPH继承吗 型号: public class Project { public int ProjectID { get; set; } public virtual ICollection<ProjectDoc> ProjectDoc { g

我正在试图弄清楚如何获得特定项目的ProjectSummary票数Doc.OfType。查询可以工作,但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; }
}
尝试获取引发错误的计数

 var trueCount = Model.ProjectDoc.OfType<Literrater.Models.Summary>()
      .Where(s => s.Status == "Active")
      .SelectMany(v => v.ProjectSummaryVote.Where(s => s.Vote == true))
      .Count();
var trueCount=Model.ProjectDoc.OfType()
.其中(s=>s.状态==“活动”)
.SelectMany(v=>v.ProjectSummaryVote.Where(s=>s.Vote==true))
.Count();

我重新建模了数据,以便所有投票现在都是单一投票模型的一部分。这让我将投票关系从派生模型移到主模型中,这样可以方便地访问数据。

是否愿意共享错误?错误只是“值不能为null”。它没有连接ProjectSummaryVote记录。有三票赞成该摘要。不确定如何解决它。Literrator.Models.Summary看起来像什么?错误可能是v.ProjectSummaryVote为空!如果将集合
ProjectSummaryVote
设置为虚拟以启用延迟加载,会怎么样?
 var trueCount = Model.ProjectDoc.OfType<Literrater.Models.Summary>()
      .Where(s => s.Status == "Active")
      .SelectMany(v => v.ProjectSummaryVote.Where(s => s.Vote == true))
      .Count();