【发布时间】:2017-09-10 18:55:31
【问题描述】:
我有一个包含两个数据库的 MS Sql Server。在 C# 控制台应用程序中,我创建了两个不同的实体数据模型 (edmx) (EF6);一个用于数据库A,一个用于数据库B;将存储库和工作单元模式应用于两者。分开来说,它们工作得很好。没问题。我无法弄清楚的是如何将两者都置于一个“交易”之下。
在 EF 之前,我将创建 SqlConnection 和 SqlTransaction,修改该事务中任一数据库中的相关表,然后根据需要提交或回滚。但这似乎在 EF 中没有类似物。
UnitOfWorkForDatabaseA.Commit();
UnitOfWorkForDatabaseB.Commit(); //If this fails, both should rollback
但这对于两个独立的工作单元来说似乎是不可能的,每个工作单元都有自己的 ObjectContext。
我需要将它们都包含在 TransactionScope 中吗?或者也许设计一个 SuperUnitOfWork?
【问题讨论】:
标签: c# entity-framework transactions objectcontext