Dapper部分字段查询和部分字段更新示例

 

以下是一个使用Dapper进行部分字段查询的示例:

using (var connection = new SqlConnection("your_connection_string"))
{
    connection.Open();

    var result = connection.Query("SELECT Id, Name FROM YourTable");

    foreach (var item in result)
    {
        int id = (int)item.Id;
        string name = (string)item.Name;
        
        // 使用查询到的部分字段进行其他操作
    }
}

在上面的代码中,我们使用 connection.Query() 方法执行了一条SQL查询语句,选择了表中的 Id 和 Name 字段。查询结果返回一个动态类型对象的集合,我们可以通过属性名称访问和使用这些部分字段的值。

需要注意的是,Dapper不会自动进行对象映射,而是直接将查询结果映射为动态类型对象。因此,您需要手动访问和转换查询结果中的字段值。

另外,Dapper还提供了其他灵活强大的查询方法,例如 connection.QueryFirstOrDefault()connection.QuerySingleOrDefault()connection.QueryMultiple() 等,可以更好地满足各种查询需求。

总而言之,Dapper ORM框架支持查询部分字段,您可以使用匿名类型或自定义对象来选择要查询的字段,并通过查询结果进行相应的操作。

以下是一个使用Dapper进行部分字段更新的示例:

using (var connection = new SqlConnection("your_connection_string"))
{
    connection.Open();

    var entity = new YourEntity 
    {
        Id = 1,
        Name = "New Name",
        Age = 30
        // 其他字段...
    };

    string sql = "UPDATE YourTable SET Name = @Name, Age = @Age WHERE Id = @Id";

    connection.Execute(sql, entity);
}

在上面的例子中,我们创建了一个名为 entity 的实体对象,并设置了要更新的部分字段的值,这里是 Name 和 Age 字段。然后,我们使用 SQL 更新语句中的参数化查询,在 connection.Execute() 方法中执行更新操作。

需要注意的是,Dapper并不会自动生成和维护更新语句,您需要手动编写SQL语句,并在其中指定要更新的字段以及相应的参数。

此外,Dapper还支持使用匿名类型或自定义对象进行部分字段更新。您可以将要更新的字段作为匿名对象或实体对象的属性进行更新。

总结起来,Dapper ORM框架支持更新部分字段。您可以使用参数化查询,手动编写更新语句,并指定要更新的字段和对应的参数。通过这种方式,您可以更灵活地进行部分字段的更新操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
博文地址: https://www.cnblogs.com/cl-blogs/p/10219126.html 简单栗子: [Test] public void 三表联表分页测试() { LockPers lpmodel = new LockPers() { Name = "%蛋蛋%", IsDel = false}; Users umodel = new Users() { UserName = "jiaojiao" }; SynNote snmodel = new SynNote() { Name = "%木头%" }; Expression<Func<LockPers, Users, SynNote, bool>> where = PredicateBuilder.WhereStart<LockPers, Users, SynNote>(); where = where.And((lpw, uw, sn) => lpw.Name.Contains(lpmodel.Name)); where = where.And((lpw, uw, sn) => lpw.IsDel == lpmodel.IsDel); where = where.And((lpw, uw, sn) => uw.UserName == umodel.UserName); where = where.And((lpw, uw, sn) => sn.Name.Contains(snmodel.Name)); DapperSqlMaker<LockPers, Users, SynNote> query = LockDapperUtilsqlite<LockPers, Users, SynNote> .Selec() .Column((lp, u, s) => // null) //查询所有字段 new { lp.Id, lp.InsertTime, lp.EditCount, lp.IsDel, u.UserName, s.Content, s.Name }) .FromJoin(JoinType.Left, (lpp, uu, snn) => uu.Id == lpp.UserId , JoinType.Inner, (lpp, uu, snn) => uu.Id == snn.UserId) .Where(where) .Order((lp, w, sn) => new { lp.EditCount, lp.Name, sn.Content }); var result = query.ExcuteSelect(); //1. 执行查询 WriteJson(result); // 打印查询结果 Tuple<StringBuilder, DynamicParameters> resultsqlparams = query.RawSqlParams(); WriteSqlParams(resultsqlparams); // 打印生成sql和参数 int page = 2, rows = 3, records; var result2 = query.LoadPagelt(page, rows, out records); //2. 分页查询 WriteJson(result2); // 查询结果 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值