个人网站的设计论文,网站做排名有用吗,新手搭建WordPress,济宁网站建设专业定制译文链接#xff1a;https://www.infoworld.com/article/3025784/how-to-use-the-dapper-orm-in-c.html?nsdrtrue对象关系映射#xff08;ORM#xff09;这个概念已经存在很长时间了#xff0c;ORM的作用就是用来解决 编程领域的 object model 和关系数据库中的 data mode… 译文链接https://www.infoworld.com/article/3025784/how-to-use-the-dapper-orm-in-c.html?nsdrtrue对象关系映射ORM这个概念已经存在很长时间了ORM的作用就是用来解决 编程领域的 object model 和关系数据库中的 data model 的不匹配问题Dapper 是一个开源的轻量级的 ORM 框架由 Stack Overflow 团队开发Dapper 和其他流行的ORM框架相比最大的优点就是羽翼级。Dapper在最初开发时就考虑到了性能和易用性它支持在 事务存储过程 或者 批量插入时进行静态或者动态的对象绑定。使用 Visual Studio 安装 Dapper ORM 要想了解 Dapper从下面的步骤开始吧打开 Visual Studio点击 文件 - 新建 - 项目选择 网站 - ASP.Net Web Application给 web 项目指定一个名字然后选择一个 空模板点击 确定 生成 project这样我们就创建好了一个 ASP.Net web application 项目如果你已经安装了 NuGet你可以通过 NuGet 去安装 Dapper做法就是在 解决方案窗口 下的 Project 上右键选择 Manage NuGet Package ... 并且找到 Dapper然后点击安装开启这个安装过程一旦 Dapper 被成功安装你就可以愉快的玩起来了哈。使用 Dapper ORM 进行增删查改 接下来我用 Dapper 写一些简单的 CURD 语句来操作数据库考虑如下的 IDG 数据库包含了一个 Author 表表的字段如下IDFirstNameLastName在使用Dapper时你需要针对 数据库表 创建一个简单的实体类POCO class下面定义了 Author 实体对应 IDB 数据库的 Author 表。public class Author{public int Id { get; set; }public string FirstName { get; set; }public string LastName { get; set; }}使用 Dapper 的 Query() 扩展方法可以实现对数据库的查询然后将数据填充到你的 object model 中下面方法的作用就是从 Author 表中查询所有的数据然后存储到内存中最后返回一个集合给调用方。public ListAuthor ReadAll(){using (IDbConnection db new SqlConnection(ConfigurationManager.ConnectionStrings[“AdventureWorks”].ConnectionString)){return db.QueryAuthor(“Select * From Author”).ToList();}}对了为了能够使用上 Dapper 的扩展方法你需要在代码文件的顶部引入 Dapper 命名空间如下图下面的方法展示了如何从 Author table 表中查询指定的记录。public Author Find(int id) {using (IDbConnection db new SqlConnection(ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString)){return db.QueryAuthor(“Select * From Author “ WHERE Id Id”, new { id }).SingleOrDefault();}}Dapper 的 Execute() 方法可以实现对数据的新增修改删除此方法返回一个整数值该值表示在执行查询时受到的影响行数。下面的方法展示了如何使用 Dapper 更新一条记录。public int Update(Author author){using (IDbConnection db new SqlConnection(ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString)){string sqlQuery UPDATE Author SET FirstName FirstName, “ LastName LastName “ “WHERE Id Id”;int rowsAffected db.Execute(sqlQuery, author);return rowsAffected;}}正如上面代码所述Update 方法返回了一个受影响的行数意味着这么多的记录被修改上面这段代码只会有一条记录被更新所以说如果更新成功返回的就是 1。在 Dapper ORM 中使用 存储过程 为了能够使用 Dapper 执行存储过程在调用 Query 或者 Execute 方法时需要手工指定一下 CommandType 类型下面的例子展示了如何使用 Dapper 执行 存储过程。public ListAuthor Read(){using (IDbConnection db new SqlConnection (ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString)){string readSp GetAllAuthors;return db.QueryAuthor(readSp, commandType: CommandType.StoredProcedure).ToList();}}Dapper 框架也是支持事务操作的如果有必要的话可以使用事务使用方式很简单你可以利用 BeginTransaction() 和 EndTransaction() 方法其实和你使用 ADO.NET 的事务方式是一摸一样的将需要事务的语句代码放置在 BeginTransaction 和 EndTransaction 之间即可。Dapper ORM 真的是相当羽翼级 并且非常方便使用它不会为你生成任何sql语句在这种情况下还能够非常便捷的将查询结果映射到你的 POCO 对象上最????????的是它的执行速度远超 Entity Framework实际上能和原生的 ADO.Net 媲美。