如何在加载时使用来自另一个属性的数据填充属性

时间:2013-04-21 16:05:10

标签: c# properties

我的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属性,但我还没有弄清楚如何做到这一点。

我该如何处理?

1 个答案:

答案 0 :(得分:1)

一种方法就像你在getter of property中使用LINQ查询所说的那样:

public ICollection<Y> SomeNarrowList
{
    get { return SomeList.Select(p => p.Element).ToList(); }
}