使用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; } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2014-08-25 MVC之ActionResult
2014-08-25 Html辅助方法 之 Form表单标签
2014-08-25 正则表达式30分钟入门教程
2014-08-25 MVC系统过滤器、自定义过滤器
2014-08-25 MVC 数据验证