zoukankan      html  css  js  c++  java
  • 原生dapper中新增用户后根据用户id,在用户角色表中添加关联数据,事务处理

    var result = 0;
    var userId = 0;
    using (var db = _Sql.Connection)
    using (var tran =db.BeginTransaction())
    {
    var insertUserActionSql = @"INSERT INTO [dbo].[Base_User]
    ([UserName]
    ,[Password]
    ,[PhoneNumber]
    ,[Email]
    ,[IsDeleted]
    ,[CreateDate]
    ,[CreateUserId]
    ,[CreateUserName]
    ,[ModifyDate]
    ,[ModifyUserId]
    ,[ModifyUserName])
    VALUES
    (@UserName
    ,@Password
    ,@PhoneNumber
    ,@Email
    ,@IsDeleted
    ,@CreateDate
    ,@CreateUserId
    ,@CreateUserName
    ,@ModifyDate
    ,@ModifyUserId
    ,@ModifyUserName); SELECT CAST(SCOPE_IDENTITY() AS BIGINT) AS [UserId] "; //必须这么写才行 不能用@@identity 方式,dapper不支持 

    var insertUserRoler = @" INSERT INTO [dbo].[Base_UserRole]([UserId],[RoleId]) VALUES(@UserId,@RoleId)";
    try
    {

    userId = db.ExecuteScalar<int>(insertUserActionSql, editViewModel, tran);

    result = db.Execute(insertUserRoler, new { UserId = userId, RoleId = editViewModel.RoleId },tran);
    tran.Commit();
    }
    catch (SqlException ex)
    {
    tran.Rollback();
    LogHelper.AddErrorLog("Create", this.GetType(), ex);
    return false;
    }
    catch (Exception ex)
    {
    tran.Rollback();
    LogHelper.AddErrorLog("Create", this.GetType(), ex);
    return false;
    }
    }//end using
    return result > 0;

  • 相关阅读:
    设计模式之-简单工厂模式
    C# 汉语转拼音
    深入理解DIP、IoC、DI以及IoC容器
    C# 各种帮助类大全
    C# TCP多线程服务器示例
    【AtCoder】AGC004
    【AtCoder】ARC061
    【AtCoder】CODE FESTIVAL 2016 qual A
    【AtCoder】AGC005
    【AtCoder】CODE FESTIVAL 2016 qual B
  • 原文地址:https://www.cnblogs.com/Tom-yi/p/7743220.html
Copyright © 2011-2022 走看看