日期:2014-05-20  浏览次数:20945 次

关于LINQ to Entities事务处理的问题
不啰嗦了,直接上代码
using(var ts=new System.Transactions.TransactionScope())
  {
  ————多表操作代码  
  ts.Complete();
  }
直接报错!错误是 基础提供程序在open上失败,

但如果换成
ECAEntities ecaEntities = new ECAEntities();
ecaEntities.Connection.Open();
using (var ts = ecaEntities.Connection.BeginTransaction())

  ————多表操作代码  
  ts.Commit(); 

则没有问题

因为现在项目应用场景是需要在多个服务器间交互数据,所以需要应用分布式事务,恐怕只能用TransactionScope()这种方式吧,所以现在感觉很棘手,请大家帮忙看看,多谢!

------解决方案--------------------
终于解决了,跟你分享一下,我按照这个做的设置结果可以了
估计关键就是添加 ip 地址映射 和 修改数据库连接字符串这两步操作步骤
1.修改下面路径的hosts文件
添加数据库服务器的ip地址与服务器名称的映射
(数据库服务器IP地址与服务器名字)
(192.168.2.10 it-china)

C:\WINDOWS\system32\drivers\etc\hosts

# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

127.0.0.1 localhost
192.168.2.10 it-china

2.将数据库连接字符串中 datasource = . 中的 . 改成固定的 IP 地址。

http://www.cnblogs.com/554006164/archive/2011/04/26/2028921.html