zoukankan      html  css  js  c++  java
  • Entity Framework,TransactionScope 混合使用的问题讨论

    using (var ts = new TransactionScope())
    {
        string connStr = "Data Source=.;Initial Catalog=Test;Integrated Security=true;";
        using (SqlConnection connection = new SqlConnection(connStr))
        {
            // Create the command and set its properties.
            SqlCommand command = new SqlCommand();
            command.Connection = connection;
            command.CommandText = "InsertMessage";
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.Add(new SqlParameter("@ID", 1));
            command.Parameters.Add(new SqlParameter("@Message", "dfd"));
            connection.Open();
            command.ExecuteNonQuery();
            connection.Close();
            using (var context = new Entities())
            {
                context.Message.Add(new Message { ID = 222, Msg = "dfdfd" });
                context.SaveChanges();
            }
        }
        ts.Complete();
    }

    会报错,除非你打开MSDTS这个windows service
    原因是:If you use a single connection within a TransactionScope, it will be done as a local transaction (handled within that connection). If multiple db connections are involved, it will be escalated to a distributed transaction which requires that MSDTC is running on both the machine where your code runs and on the DB server, and that MSDTC on the client has permissions to communicate with MSDTC on the server (http://www.datazx.cn/Forums/en-US/0a365486-c57a-4ee9-a59f-e90a4a4abfbf/action?forum=adodotnetentityframework)

    EntityFramework5有一个办法可以解决这个问题

    using (var context = new Entities())
    {
        context.Database.Connection.ConnectionString = connStr;
        context.Message.Add(new Message { ID = 222, Msg = "dfdfd" });
        context.SaveChanges();
    }

    以下版本暂时没找到好的办法,大家有什么方法吗?

  • 相关阅读:
    Linux之vmware安装
    中秋之美
    青春无悔
    MSP430常见问题之指令系统类
    MSP430常见问题之LCD 显示驱动类
    MSP430常见问题之FLASH存储类
    MSP430常见问题之看门狗及定时器类
    MSP430常见问题之电源类
    MSP430常见问题之通信类
    MSP430常见问题之AD转换类
  • 原文地址:https://www.cnblogs.com/cqcmdwym/p/4209020.html
Copyright © 2011-2022 走看看