EF 使用事务TransactionScope

本文展示了一个使用TransactionScope进行数据库事务操作的C#代码示例。通过SqlConnection连接数据库,更新员工信息,并在同一个事务中修改账户用户名。此示例涵盖了如何在事务中执行SQL更新语句和Entity Framework上下文保存更改。
摘要由CSDN通过智能技术生成

 /// <summary>
        /// 使用事务TransactionScope
        /// </summary>
        static void UsingTransactionScope()
        {
            string value1Ofkey1 =
  System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();

            using (var scope = new TransactionScope(TransactionScopeOption.Required))
            {
                using (var conn = new SqlConnection(value1Ofkey1))
                {
                    var Id = new System.Data.SqlClient.SqlParameter("@Id",
  System.Data.SqlDbType.Int, 0,
  System.Data.ParameterDirection.Input,
  0, 0, "Id",
  System.Data.DataRowVersion.Current, false, null,
  "", "", "");
                    Id.Value = 1;

                    conn.Open();
                    var sqlCommand = new SqlCommand();
                    sqlCommand.Connection = conn;
                    sqlCommand.CommandText =
             @"UPDATE Employee SET Name = 'helenhelen222'" +
       " WHERE ID=@ID";
                    sqlCommand.Parameters.Add(Id);
                    sqlCommand.ExecuteNonQuery();

                    using (var context = new EntFraContext(conn,
                        contextOwnsConnection: false))
                    {
                        var query = context.AccountSet.Where(p => p.Employee.Id == (int)Id.Value);
                        foreach (var item in query)
                        {
                            item.UserName += "卡卡卡";
                        }
                        context.SaveChanges();
                    }
                }

                scope.Complete();
            }
        }
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值