【发布时间】:2011-02-05 15:19:15
【问题描述】:
我正在开始一个新项目并创建业务对象和数据访问等。我只是使用普通的旧 clr 对象而不是任何 orms。我创建了两个类库: 1)业务对象 - 包含我所有的业务对象,所有这些对象都是轻量级的,只有属性和业务规则。 2) 存储库 - 这是我所有的数据访问。
我的大多数对象都会包含子列表,我的问题是延迟加载这些值的最佳方法是什么,因为我不想在不需要时带回不必要的信息。
我考虑过在子属性上使用“get”来检查它是否为“null”以及是否调用我的存储库来获取子信息。据我所知,这有两个问题: 1)对象“知道”如何获取自己我宁愿没有数据访问逻辑保存在对象中。 2) 这需要两个类相互引用,这在 Visual Studio 中会引发循环依赖错误。
是否有人对如何克服此问题或对我的项目布局以及可以改进的地方有任何建议?
谢谢
【问题讨论】:
标签: c# design-patterns repository data-access-layer