SmartDapper如何实现数据库操作的疑问?

摘要:SmartDapper SmartDapper 是一个基于 Dapper 的轻量级扩展库,提供 表达式树转 SQL、链式构建器(Fluent Builder:QuerySetInsertSetUpdateSetDeleteSet,支持
SmartDapper SmartDapper 是一个基于 Dapper 的轻量级扩展库,提供 表达式树转 SQL、链式构建器(Fluent Builder:QuerySet/InsertSet/UpdateSet/DeleteSet,支持 Where/Select/Join/GroupBy/OrderBy/Union/Set/Fill 等)、通用 CRUD、分页查询 与 多数据库适配(SQL Server / MySQL / SQLite)。默认参数化执行,以降低 SQL 注入风险。 安装 dotnet add package SmartDapper 快速开始(SQL 生成 + Dapper 执行) using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Dapper; using Microsoft.Data.SqlClient; using SmartDapper.SqlGenerator; [Table("Users")] public class User { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } public string UserName { get; set; } = string.Empty; public bool IsActive { get; set; } } var generator = SqlGeneratorFactory.CreateSqlServer<User>(); var (sql, parameters) = generator.GetSelectAll(u => u.IsActive); using var conn = new SqlConnection("Server=.;Database=MyDb;Trusted_Connection=True;TrustServerCertificate=True;"); var users = conn.Query<User>(sql, parameters).ToList(); 使用扩展方法(IDbConnection) using Microsoft.Data.SqlClient; using SmartDapper.Extensions; using var conn = new SqlConnection("Server=.;Database=MyDb;Trusted_Connection=True;TrustServerCertificate=True;"); // --------------------------- // 结果映射(可选,但推荐:列名/属性名不一致时) // --------------------------- // 让 Dapper 在 materialize(结果集->实体)时优先使用 [Column("DbColumn")] 映射, // 并可选开启下划线匹配(user_name -> UserName)。 // // 注意:这是 Dapper 的全局设置(进程内对该实体类型的所有查询都会受影响),建议只在启动阶段执行一次。
阅读全文