1. in操作
IDbConnection connection = new SqlConnection("Data Source=.;Initial Catalog=DapperTest;Integrated Security=True;MultipleActiveResultSets=True"); var sql = "select * from Users where Email in @emails"; var info = connection.Query<Users>(sql, new { emails = new string[2] { "1QQ", "7QQ" } });
2. 多条sql执行
IDbConnection connection = new SqlConnection("Data Source=.;Initial Catalog=DapperTest;Integrated Security=True;MultipleActiveResultSets=True"); var sql = "select * from Product; select * from Users"; var multiReader = connection.QueryMultiple(sql); var productList = multiReader.Read<Product>(); var userList = multiReader.Read<Users>(); multiReader.Dispose();
3.多表join操作
var sql = @"select p.ProductName,p.CreateTime,u.UserName from Product as p join Users as u on p.UserID = u.UserID where p.CreateTime > ‘2019-1-1‘; "; var result = connection.Query<Product, Users,Product>(sql, (product, users) => { product.UsersOwner = users; return product; },splitOn:"UserName");
4.支持存储过程
use DapperTest set ansI_nulls on go set quoted_identifier on go create proc [dbo].[sp_GetUsers] @id int as begin select * from Users where UserID = @id ; end
var info = connection.Query<Users>("sp_GetUsers", new { id = 10 }, commandType: CommandType.StoredProcedure);