C# 通过依赖链传递列表
我有一对多对B的A类,B类有一对多对C类。我如何在A类中创建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;
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。卡维曼已经回答了这个问题。谢谢,它回答了这个问题。谢谢,它回答了这个问题。非常感谢。