如何创建多个dbcontexts以及如何将其添加到存储库以供使用?
我当前的示例基于MyFinance, codeplex application,因此这意味着您应该能够查看来源here。 有没有人有想法,我想我应该改变UnitOfWork,RepositoryBase,IDatabaseFactory,......但我不确定如何或用什么。
提前致谢
上述信息 ^^
以下情况是这样的,因为我们有一个疯狂的大“增量”数据,我们将有一个主dbcontext(MyMasterContext),只有用户,他们的角色和信息以及其他细节。
接下来,我们最初会有1台服务器,但我们怀疑这会在接下来的4到6个月内发生变化,这就是为什么我们将下一个dbContext命名为:MySlaveContext。
另外,为了速度,我们还有另外一台服务器只返回JSON请求(MyAjaxContext),例如,为接下来的10个城市提供当前的邮政编码,以及许多其他“自动完成”功能。
你是怎么回事,我不应该使用unitOfWork?在Asp.Net上更新对象MVC确实使用UnitOfWork模式,不是吗? (UpdateModel(object)& saveChanges)。
我将研究TransactionScope,但如果可能的话我想使用UnitOfWork。 您是否有任何关于如何解决当前问题的例子或事情?
答案 0 :(得分:0)
该项目没有工作单元实施(EF4上下文除外)或IDatabaseFactory
。
我会使用TransactionScope
而不是工作单元实现,只需在每个存储库实现中引用正确的(在构造函数中)EF4 DbContext。
对评论的回复进行更新
如果您只使用数据库,我认为使用通用存储库或工作单元实现没有任何好处。
创建具有所需内容的存储库,不多或少(使用您引用的相应接口)。您的存储库实现完全可以接受EF DbContext。
如果您需要交易支持,请使用TransactionScope
。
答案 1 :(得分:0)
我建议你看一下NCommon。它为模式提供了实现,例如存储库,工作单元和规范模式。它还支持多个上下文和多个工作单元。
您可以在此处找到更多文档:
http://riteshrao.github.com/ncommon/index.html
文档似乎现在正在完成。希望能得到解决。
在这里发现了作者关于NCommon的一篇旧博客文章和对多个数据库的支持:
http://codeinsanity.com/archive/2010/04/05/unit-of-work-implementation-in-ncommon-1-1.aspx