以下是一些常用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包,并参考各自的官方文档以获得更完整的示例和使用说明。