C# 通过依赖链传递列表

C# 通过依赖链传递列表,c#,entity-framework,C#,Entity Framework,我有一对多对B的A类,B类有一对多对C类。我如何在A类中创建C类列表 public class A { public virtual IList<B> Bs { get; set; } // need List<C> Cs passed from Bs } public class B { public virtual A A { get; set; } public virtual IList<C> Cs { get;

我有一对多对B的A类,B类有一对多对C类。我如何在A类中创建C类列表

public class A 
{
    public virtual IList<B> Bs { get; set; }
    //  need List<C> Cs passed from Bs
}

public class B
{
    public virtual A A { get; set; }
    public virtual IList<C> Cs { get; set; }
 }

public class C
{
    public virtual B B { get; set; }
}
公共A类
{
公共虚拟IList Bs{get;set;}
//从Bs传递的需要列表Cs
}
公共B级
{
公共虚拟A{get;set;}
公共虚拟IList Cs{get;set;}
}
公共C类
{
公共虚拟B{get;set;}
}
您可以使用from LINQ,它将“列表列表”展平为单个列表

public class A 
{
    public virtual IList<B> Bs { get; set; }

    //if you need an IList<C>
    public IList<C> Cs
    {
        get { return Bs.SelectMany(b => b.Cs).ToList(); }
    }  

    //if you need an IEnumerable<C>
    public IEnumerable<C> Cs
    {
        get { return Bs.SelectMany(b => b.Cs); }
    }    
}
公共A类
{
公共虚拟IList Bs{get;set;}
//如果你需要一个IList
公共图书馆
{
get{return Bs.SelectMany(b=>b.Cs.ToList();}
}  
//如果你需要一个IEnumerable
公共数字计算机
{
获取{return Bs.SelectMany(b=>b.Cs);}
}    
}
您可以使用from LINQ,它将“列表列表”展平为单个列表

public class A 
{
    public virtual IList<B> Bs { get; set; }

    //if you need an IList<C>
    public IList<C> Cs
    {
        get { return Bs.SelectMany(b => b.Cs).ToList(); }
    }  

    //if you need an IEnumerable<C>
    public IEnumerable<C> Cs
    {
        get { return Bs.SelectMany(b => b.Cs); }
    }    
}
公共A类
{
公共虚拟IList Bs{get;set;}
//如果你需要一个IList
公共图书馆
{
get{return Bs.SelectMany(b=>b.Cs.ToList();}
}  
//如果你需要一个IEnumerable
公共数字计算机
{
获取{return Bs.SelectMany(b=>b.Cs);}
}    
}

如何获取它们-作为方法或只读属性(
{get;}
)?您不能让它可写(
{get;set;}
),因为您需要将要添加的项放入一个
B
中,而不是getter。卡维曼已经回答了这个问题。谢谢。您希望如何获取它们-作为方法或只读属性(
{get;}
)?您不能让它可写(
{get;set;}
),因为您需要将要添加的项放入一个
B
中,而不是getter。卡维曼已经回答了这个问题。谢谢,它回答了这个问题。谢谢,它回答了这个问题。非常感谢。