0

嘿,我有一个独特而令人不安的情况。

我正在做一个项目,我的团队混合使用了企业数据库和实体框架。显然这可能不推荐,但这是我坚持的。我想采用使用企业数据库编写的方法,也采用使用实体框架编写的不同方法,并将这两种方法包装在一个事务中(不需要 Microsoft 分布式事务服务)。我希望尽量减少重写代码,并能够将这两种方法原样包装在一个事务中。这可能吗?谢谢。

使用 SQL Server 2008 和 .NET 4.0

4

1 回答 1

1

我想您想在TransactionScope不使用 DTC 的情况下将 EF 和 EntLib 查询混合在一起。

好消息:这是可能的。如果您对 EntLib DAAB 和 EF DbContext 使用完全相同的连接字符串,它将起作用,具体取决于 EF、EntLib 和 SQL Server 的版本。

所以你要做的是:

  1. 检查你有正确的版本
  2. 获取由 EF 更改的连接字符串的版本并使用它而不是你的。

对于 1,我检查了这些组合:

  • SQL Server 必须是 2008 或更早版本
  • EntLib 4.1 + EF 5 不起作用
  • EntLib 5 + EF 5 作品

对于 2,要让 EF 更改连接字符串,您必须调试使用 DbContext 实例的代码的执行。设置断点并观察或检查 DbContextDatabase.Connection.ConnectionString属性。那是连接字符串的 EF 版本。将它用于 EF 和 EntLib,您将摆脱 DTC。

于 2013-04-07T17:20:03.160 回答