以下是一些常用Dapper拓展框架的调用例子:

以下是一些常用Dapper拓展框架的调用例子:

Dapper.Contrib

// 定义实体类
public class Product
{
    [Key]
    public int ProductId { get; set; }

    public string Name { get; set; }

    public decimal Price { get; set; }
}

using Dapper.Contrib.Extensions;

// 保存实体
using (var conn = new SqlConnection(connString))
{
    var newProduct = new Product { Name = "Product A", Price = 10.0m };
    conn.Insert(newProduct);
}

// 查询实体
using (var conn = new SqlConnection(connString))
{
    var products = conn.GetAll<Product>();
    //...
}


Dapper.FastCrud

using Dapper.FastCrud;

// 查询所有产品
using (var conn = new SqlConnection(connString))
{
    var products = conn.Find<Product>();
    //...
}

// 按id获取产品
using (var conn = new SqlConnection(connString))
{
    var product = conn.Get<Product>(1);
    //...
}

// 插入新产品
using (var conn = new SqlConnection(connString))
{
    var newProduct = new Product { Name = "Product A", Price = 10.0m };
    conn.Insert(newProduct);
}

// 更新产品
using (var conn = new SqlConnection(connString))
{
    var product = conn.Get<Product>(1);
    product.Price = 15.0m;
    conn.Update(product);
}

// 删除产品
using (var conn = new SqlConnection(connString))
{
    conn.Delete<Product>(1);
}


Dapper.Rainbow

using Dapper.Rainbow;

// 获取所有产品
using (var conn = new SqlConnection(connString))
{
    var products = conn.SelectAll<Product>();
    //...
}

// 根据id获取产品
using (var conn = new SqlConnection(connString))
{
    var product = conn.FindByPrimaryKey<Product>(1);
    //...
}

// 插入新产品
using (var conn = new SqlConnection(connString))
{
    var newProduct = new Product { Name = "Product A", Price = 10.0m };
    conn.Save(newProduct);
}

// 更新产品
using (var conn = new SqlConnection(connString))
{
    var product = conn.FindByPrimaryKey<Product>(1);
    product.Price = 15.0m;
    conn.Save(product);
}

// 删除产品
using (var conn = new SqlConnection(connString))
{
    conn.Delete<Product>(1);
}


Dapper.SimpleCRUD

using Dapper.SimpleCRUD;

// 查询所有产品
using (var conn = new SqlConnection(connString))
{
    var products = conn.GetList<Product>();
    //...
}

// 根据id获取产品
using (var conn = new SqlConnection(connString))
{
    var product = conn.Get<Product>(1);
    //...
}

// 插入新产品
using (var conn = new SqlConnection(connString))
{
    var newProduct = new Product { Name = "Product A", Price = 10.0m };
    conn.Insert(newProduct);
}

// 更新产品
using (var conn = new SqlConnection(connString))
{
    var product = conn.Get<Product>(1);
    product.Price = 15.0m;
    conn.Update(product);
}

// 删除产品
using (var conn = new SqlConnection(connString))
{
    conn.Delete<Product>(1);
}

DapperExtensions是另一个很受欢迎的Dapper拓展框架,也可以用于在Dapper中执行诸如Delete、Update和Insert等操作,同时还支持复杂查询等查询操作,下面介绍一下DapperExtensions的用法。
DapperExtensions的安装需要在项目中安装对应的NuGet包,包名为“DapperExtensions”。 安装完成后,我们需要在代码中使用以下命名空间:
using DapperExtensions;

下面是一些在DapperExtensions中常用的方法:

查询

using (var conn = new SqlConnection(connString))
{
    conn.Open();
    var products = conn.GetList<Product>(Predicates.Field<Product>(p => p.Price, Operator.Gt, 10));
    //...
}


插入

using (var conn = new SqlConnection(connString))
{
    conn.Open();
    var newProduct = new Product { Name = "Product A", Price = 10.0m };
    conn.Insert(newProduct);
    //...
}


更新

using (var conn = new SqlConnection(connString))
{
    conn.Open();
    var product = conn.Get<Product>(1);
    product.Price = 15.0m;
    conn.Update(product);
    //...
}


删除

using (var conn = new SqlConnection(connString))
{
    conn.Open();
    conn.Delete<Product>(1);
    //...
}

在DapperExtensions中,查询和操作是通过Predicates和Sort和DelimitedPredicate等类创建的谓词和排序进行构建的。 这些谓词和排序提供了一种将操作与查询中的一个或多个条件相互关联的方法。
DapperExtensions还提供了另一种定义谓词的方法,即使用Expression表达式。 这允许将C#表达式解释为SQL查询文本时更方便地指定操作和查询。
提供有关DapperExtensions的详细信息和更多示例的官方文档在 GitHub 上可获得。

以上示例仅供参考,具体实现方式可能因版本、环境不同而略有差异。使用这些拓展框架时,请确保您已正确安装对应的NuGet包,并参考各自的官方文档以获得更完整的示例和使用说明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值