0

我有一个virtual Property SomeList类型ICollection<X>和一个Property SomeNarrowList类型ICollection<Y>

Class X包含一个virtual property ElementClass Y

SomeList正在从数据库中填充,之后使用一些方法从Element.

正如我现在正在做的那样,每当调用这样的方法时,都会执行检查以查看是否SomeNarrowList为空,如果是,则Element使用SomeList.

这段代码对我来说似乎相当混乱,我希望有一个更干净的解决方案。

get我的第一个想法是为属性的值提供一个实现SomeNarrowList,但这提出了一个问题:使用 EF 映射属性时,以什么顺序加载属性(如果有)?如果该SomeNarrowList属性将在之前加载SomeList,这将导致为空SomeNarrowList

另一个想法是使用 LINQ 始终引用SomeList属性并从那里获取每个Element属性,但我还没有完全弄清楚如何做到这一点。

我应该如何处理这个?

4

1 回答 1

1

一种方法是如您所说在属性的获取器中使用 LINQ 查询,如下所示:

public ICollection<Y> SomeNarrowList
{
    get { return SomeList.Select(p => p.Element).ToList(); }
}
于 2013-04-21T16:47:38.760 回答