我的virtual Property SomeList
类型为ICollection<X>
,Property SomeNarrowList
类型为ICollection<Y>
。
Class X
包含virtual property Element
Class Y
。
SomeList
,之后使用一些方法从Element
检索特定数据。
由于我现在正在做的事情,每当调用这样的方法时,都会执行检查以查看SomeNarrowList
是否为空,如果是,请填写Element
属性SomeList
。
这段代码对我来说似乎很混乱,我希望有一个更清洁的解决方案。
我的第一个想法是为get
属性的SomeNarrowList
值提供实现,但这引发了一个问题:在它们被映射时以什么顺序(如果有的话)加载属性使用EF?如果在SomeNarrowList
之前加载SomeList
属性,则会导致空SomeNarrowList
。
另一个想法是使用LINQ始终引用SomeList
属性并从那里获取每个Element
属性,但我还没有弄清楚如何做到这一点。
我该如何处理?
答案 0 :(得分:1)
一种方法就像你在getter of property中使用LINQ查询所说的那样:
public ICollection<Y> SomeNarrowList
{
get { return SomeList.Select(p => p.Element).ToList(); }
}