Мне было интересно, возможно ли иметь двойное гнездо linq Statemate.
У меня есть следующие объекты (сначала я использую код EF)
public class Team
{
public int TeamId { get; set; }
public sting Name {get;set;}
public virtual ICollection<Person> People
}
public class Person
{
public int PersonId { get; set; }
[ForeignKey( "Team" )]
public int? TeamId { get; set; }
public Team Team { get; set; }
public virtual ICollection<Paper> Papers
}
public class Paper
{
public int PaperId { get; set; }
[ForeignKey( "Person" )]
public int? PersonId { get; set; }
public Person Person { get; set; }
public virtual ICollection<Paper> People
}
Затем я использую следующий статус linq для создания объекта
(from t in db.Teams
select new TeamPapers
{
TeamName = t.Name
PaperTotal = t.People.Select(p=>p.Papers).Count()
}).ToList()
Но PaperTotal возвращает только количество ICollection , а не общее количество документов в этой коллекции. Мне было интересно, если бы кто-нибудь знал, как это можно сделать?