0

我已经做了一点与TDD ASP.Net MVC的Linq编程,并喜欢它。 Digressing,我现在正在学习webforms对存储的特效,不能使用linq。我想保留一些与MVC相关的松耦合和可测试性。帮助设计我自己的粗略DataContext

我没有时间学习和设置依赖注入基础结构,所以我创建了一个对象工厂,可以根据需要创建一个对象工厂,以便创建模拟或实际实例。

这种方法的问题是工厂提供了我的测试库的新实例,所以当实体A请求实体B的存储库时,它会得到一个新的实例,而不会在我的单元测试环境中进行更改 - 这是问题。由于我的测试实例没有持久性机制,而且我没有使用依赖注入,所以我需要一种让实体A访问我的单元测试的当前数据上下文的方式,以便它可以获取实体B的脏存储库。对于桌面应用程序,我'd通常创建我的dataContext作为一个单身人士,但由于并发问题与网络应用程序,我已经排除了。

我正在寻找一个好的模式来代替。作为一个停止差距,我要求所有的存储库和业务对象都用数据上下文实例化,创建一种层次结构,其中dataContext用dc实例化存储库,然后用dc实例化业务对象。

我还没有使用复合模式,继承或接口(除了嘲笑)。我不是一个OO程序员,但这看起来很丑。有没有人有任何好的模式建议,我应该遵循,可以整理我的解决方案?

TIA

+0

你确定你不能使用LINQ,因为存储过程? LINQ to SQL确实支持它们。 – 2010-01-23 12:37:44

+0

是的 - 要求说'没有linq' – 2010-01-23 14:08:58

回答

0

查找数据映射器模式,应该有大量的例子摆在那里,这是我们使用的方法和它的作品很适合我们。

+0

好的,这让我领先。 http://martinfowler.com/eaaCatalog/dataMapper.html描述了我创建的存储库,但不是上下文问题(也许我需要这本书)。 “...数据映射器本身对域层来说甚至是未知的。”我想知道如何在不立即加载对象图中的所有依赖关系的情况下实现这一点。 – 2010-01-24 23:22:35