6

我们一直在密切关注使用Breezejs在SPA和客户端之间提供数据上下文的SPA。这些功能在客户端上看起来很棒,但是我们希望在服务器上使用Repository模式,并且不必从EFContextProvider继承,这会导致IoC出现问题,并可能会导致单元测试/模拟,从而得到良好的问题分离。我们一直在关注Pluralsight上的John Papa的Code Camper样本,该样本最初使用没有Breeze的Respository/UoW模式,然后让我们看看包含Breeze的Hot Towel模板。breezejs存储库

有谁知道Breeze如何被抽象为一个Repository,它保持DbContext干净地(如果使用实体框架)封装。此外,如果您不使用实体框架并且更喜欢使用另一个ORM(如nHibernate)会发生什么情况。

回答

3

感谢张贴在这里,因为我相信其他人会问这个:)

如果你不使用EF那么你赢了;吨获取元数据自动创造,微风提供。然而,你当然可以将EF上下文抽象为Repo,并且仍然可以获得好处。

Breeze/Knockout ASP.NET SPA模板显示存储库已分解。我相信某个地方有一个UoW的样本 - 它从那里逃脱了。我已经要求微风人指出一个答案。

如果您使用nHibernate,则不会有自动元数据 - 但这是Breeze可以看到的一项很好的功能请求。

+0

好的答案,约翰。我们正在努力使服务器上的* any * CLR模型的元数据生成变得更加容易。应该很快就能描述它......就像在一两周内。 – Ward 2013-03-20 17:59:49

+0

我已经在我的backlog中添加了一个“UoW/Repository和模型在单独项目中”的简单示例。为了快速获得它,它将使用EF ...因为重点在于关注的分离,而不是数据访问技术本身。一旦我们演示(其他地方)如何为任何模型创建元数据,读者应该能够随意更换EF。 – Ward 2013-03-20 18:10:26

+0

我强烈推荐Scott Allen在Repository和UOW中的视频[Pluralsight Design Patterns course](http:// pluralsight。 com/training/courses/TableOfContents?courseName = patterns-library)...也许是我见过的这些模式中最清晰,没有行话的说明。 – Ward 2013-03-20 18:14:06