zoukankan      html  css  js  c++  java
  • 使用Dapper批量插入或更新实体, 查询实体等实例

    
    
    public class GenerateMsaDocumentSignParametersDataAccess
        {
            protected string TcitClientConn = System.Configuration.ConfigurationManager.ConnectionStrings["DBTest"].ToString();
          //单个字段取值
            public string GetDocumentSignHandleClassNameByDocId(long msaDocId)
            {
                using (var conn = new SqlConnection(TcitClientConn))
                {
                    return conn.QueryFirstOrDefault<string>(@"SELECT [DocumentHandleClassName]
                                                                FROM [dbo].[DocumentHandleMappingXXX] WHERE DocumentId=@msaDocId", new { msaDocId });
                }
            }
         
        //获取实体List
    public List<GrantsEntityExtend> GrantsEntityExtends(int companyId, string employeeId) { const string querySql = @" SELECT emp.FirstName , emp.MiddleName , emp.LastName, grants.* FROM GrantInfoxxx.Grants grants LEFT JOIN CompanyInfoxxx.Employee emp ON emp.CompanyID = grants.CompanyID AND emp.EmployeeID = grants.EmployeeID WHERE grants.CompanyID = @companyId AND grants.EmployeeID = @employeeId;"; using (var conn = new SqlConnection(TcitClientConn)) { var result = conn.Query<GrantsEntityExtend>(querySql, new { companyId, employeeId }).ToList(); return result; } }

          //in的用法
    public List<VestingEntityExtend> GrantsVestingExtends(int companyId, string employeeId, string[] grantIds) { const string querySql = @"SELECT * FROM GrantInfoxxx.Vesting WHERE CompanyID=@companyId AND EmployeeID=@employeeId AND GrantID IN @grantIds"; using (var conn = new SqlConnection(TcitClientConn)) { var result = conn.Query<VestingEntityExtend>(querySql, new { companyId, employeeId, grantIds = grantIds }).ToList(); return result; } } /// <summary> /// 插入批量实体 /// </summary> /// <param name="documentSigningParameterModels">待插入集合</param> /// <returns>返回影响行数</returns> public int InsertDocumentSignatureFieldValueTable(List<DocumentSigningParameterModel> documentSigningParameterModels) { const string insertSql = @"INSERT INTO [dbo].[DocumentSigningParameter] ( [DocumentSigningID], [ParameterName], [ParameterValue], [CreatedDate], [Creator], [ModifiedDate], [Modifier] ) VALUES (@DocumentSigningID, @ParameterName, @ParameterValue, @CreatedDate, @Creator, @ModifiedDate, @Modifier);"; using (var conn = new SqlConnection(TcitClientConn)) { return conn.Execute(insertSql, documentSigningParameterModels); } } }
    
    
    


    //Dapper中使用事务更新实体
    public void UpdateDocumentSignatureUploadRecord(int status, Guid? errorFileContentId, Guid uploadId, List<DocumentSignatureProcessing> documentSignatureProcessings)
            {
                using (var conn = new SqlConnection(TcitClientConn))
                {
                    conn.Open();
                    using (var trans = conn.BeginTransaction())
                    {
                        const string updateSql = @"UPDATE Portal.DocumentSignatureUploadRecords
                                                SET Status =@status, ErrorFileContentID =@errorFileContentId
                                                WHERE UploadID =@uploadId; ";
                        const string updateProcessingSql = @"UPDATE Portal.DocumentSignatureProcessing
                    SET Status = @Status, FailReason = @FailReason, Modifier = @Modifier, ModifiedDate = @ModifiedDate
                    WHERE CompanyID = @CompanyID AND DocID = @DocID AND EmployeeID = @EmployeeID AND Status = 1 AND(BatchID IS NULL OR BatchID = ''); ";
                        try
                        {
                            conn.Execute(updateSql, new { status, errorFileContentId, uploadId }, trans);
                            conn.Execute(updateProcessingSql, documentSignatureProcessings, trans);
                            trans.Commit();
                        }
                        catch (Exception ex)
                        {
                            trans.Rollback();
                            NLogger.Error(ex);
                            throw;
                        }
                    }
                }
            }

     将查询出的数据转为key,value形式存储:

    public List<FieldValuesMappingModel> GetOptionNessInfoDic()
            {
                const string querySql = @"SELECT [CompanyID]
                                          ,[EmployeeID]
                                          ,[OptioneeID]
                                          ,[AddressLine1]
                                          ,[AddressLine2]
                                          ,[AddressLine3]
                                          ,[City]
                                          ,[State]
                                          ,[ZipCode]
                                          ,[CountryName]
                                          ,[SubsidiaryCode]
                                          ,[LocationCode]
                                          ,[TitleCode]
                                          ,[OfficerCode]
                                          ,[TaxCode]
                                          ,[BirthDate]
                                          ,[HireDate]
                                          ,[TerminationID]
                                          ,[TerminationDate]
                                          ,[UserText1]
                                      FROM [dbo].[Opt] with(nolock)
                                      where companyID=@CompanyID and EmployeeID=@EmployeeID";
                using (var conn = new SqlConnection(Conn))
                {
                    using (var reader = conn.ExecuteReader(querySql, new { CompanyID = CompanyId, EmployeeID = EmployeeId }))
                    {
                        var result = new List<FieldValuesMappingModel>();
                        while (reader.Read())
                        {
                            for (var i = 0; i < reader.FieldCount; i++)
                            {
                                var columnName = reader.GetName(i);
                                var columnValue = reader.GetValue(i);
                                result.Add(new FieldValuesMappingModel
                                {
                                    KeyValue = columnValue.ToString(),
                                    DisplayName = columnName,
                                    KeyName = columnName
                                });
                            }
                        }
                        return result;
                    }
                }
            }
  • 相关阅读:
    Photoshop 基础七 位图 矢量图 栅格化
    Photoshop 基础六 图层
    Warfare And Logistics UVALive
    Walk Through the Forest UVA
    Airport Express UVA
    Guess UVALive
    Play on Words UVA
    The Necklace UVA
    Food Delivery ZOJ
    Brackets Sequence POJ
  • 原文地址:https://www.cnblogs.com/itjeff/p/13558313.html
Copyright © 2011-2022 走看看