Introduction to the basic syntax for using dapper-extensions
Entity class
demoentity entity = new demoentity ();
Delete based on entity primary key
This. Delete<demoentity> (entity);
Delete based on primary key ID
This. Delete<demoentity> (1);
Increase
This. Insert<demoentity> (entity);
Update
BOOL result = this. Update<demoentity> (entity);
Return entities based on primary key
entity = this. Getbyid<demoentity> (1);
Number of rows returned
This. Count<demoentity> (New {ID = 1});
Query all
ienumerable<demoentity> list = this. Getall<demoentity> ();
ilist<isort> sort = new list<isort> ();
Sort. ADD (new Sort {propertyname = "ID", ascending = false});
Conditional query
List = this. Getlist<demoentity> (New {ID = 1, Name = "123"}, sort);
ORM Stitching Condition Query
ilist<ipredicate> predlist = new list<ipredicate> ();
Predlist.add (predicates.field<demoentity> (p = p.name, operator.like, "Do not know%"));
Predlist.add (predicates.field<demoentity> (p = p.id, Operator.eq, 1));
Ipredicategroup Predgroup = Predicates.group (Groupoperator.and, Predlist.toarray ());
List = this. Getlist<demoentity> (Predgroup);
Paging Query
Long Allrowscount = 0;
This. Getpagelist<demoentity> (1, N, out Allrowscount, new {ID = 1}, sort);
RepositoryServiceBase.cs (Implementation class for Idataservicerepository)
Using System.Collections.Generic;
Using System.Data;
Using System.Linq;
Using Dapper;
Using Dapperextensions;
Using HY. DataAccess;
Namespace HY. Orm
{
public class Repositoryservicebase:idataservicerepository
{
Public Repositoryservicebase ()
{
}
Public Repositoryservicebase (Idbsession dbsession)
{
Dbsession = dbsession;
}
Public idbsession dbsession {get; private set;}
public void Setdbsession (Idbsession dbsession)
{
Dbsession = dbsession;
}
<summary>
Get entities by ID
</summary>
<typeparam name= "T" ></typeparam>
<param name= "Primaryid" ></param>
<returns></returns>
Public T getbyid<t> (Dynamic Primaryid) where T:class
{
Return dbsession.connection.get<t> (Primaryid as Object, DatabaseType:DBSession.DatabaseType);
}
<summary>
Get multiple entities based on multiple IDs
</summary>
<typeparam name= "T" ></typeparam>
<param name= "IDs" ></param>
<returns></returns>
Public ienumerable<t> getbyids<t> (ilist<dynamic> ids) where T:class
{
var tblname = string. Format ("dbo.{ 0} ", typeof (T). Name);
var idsin = string. Join (",", IDs. Toarray<dynamic> ());
var sql = "Select * from @table WHERE Id in (@ids)";
ienumerable<t> dataList = dbsession.connection.query<t> (sql, new {table = tblname, ids = Idsin});
return dataList;
}
<summary>
Get All data collection
</summary>
<typeparam name= "T" ></typeparam>
<returns></returns>
Public ienumerable<t> getall<t> () where T:class
{
Return dbsession.connection.getlist<t> (DatabaseType:DBSession.DatabaseType);
}
//<summary>
//Statistics total
//</summary>
//<typeparam name= "T" ></typeparam
//<param name= "predicate" ></PARAM>
//<param name= "buffered" ></PARAM>
// <RETURNS></RETURNS>
public int count<t> (object predicate, bool buffered = false) where T:class
{
Return dbsession.connection.count<t> (predicate, databaseType:DBSession.DatabaseType);
}
<summary>
Querying list data
</summary>
<typeparam name= "T" ></typeparam>
<param name= "predicate" ></param>
<param name= "Sort" ></param>
<param name= "Buffered" ></param>
<returns></returns>
Public ienumerable<t> getlist<t> (object predicate = null, ilist<isort> sort = null,
BOOL buffered = false) where T:class
{
return dbsession.connection.getlist<t> (predicate, sort, null, NULL, buffered, DatabaseType: Dbsession.databasetype);
}
<summary>
Page out
</summary>
<typeparam name= "T" ></typeparam>
<param name= "PageIndex" ></param>
<param name= "PageSize" ></param>
<param name= "Allrowscount" ></param>
<param name= "predicate" ></param>
<param name= "Sort" ></param>
<param name= "Buffered" ></param>
<returns></returns>
Public ienumerable<t> getpagelist<t> (int pageIndex, int. pageSize, out Long Allrowscount,
Object predicate = null, ilist<isort> sort = NULL, bool buffered = true) where T:class
{
if (sort = null)
{
sort = new list<isort> ();
}
ienumerable<t> entitylist = dbsession.connection.getpage<t> (predicate, sort, pageIndex, pageSize, NULL, NULL, buffered, databaseType:DBSession.DatabaseType);
Allrowscount = dbsession.connection.count<t> (predicate, databaseType:DBSession.DatabaseType);
return entitylist;
}
<summary>
Insert a single record
</summary>
<typeparam name= "T" ></typeparam>
<param name= "entity" ></param>
<param name= "Transaction" ></param>
<returns></returns>
Public dynamic insert<t> (T entity, idbtransaction transaction = null) where T:class
{
Dynamic result = dbsession.connection.insert<t> (entity, transaction, DatabaseType:DBSession.DatabaseType);
return result;
}
//<summary>
//Update a single record
//</summary>
//<typeparam name= "T" ></typeparam>
//<param name= "entity" ></PARAM>
//<param name= "Transaction" ></PARAM>
//< RETURNS></RETURNS>
public bool Update<t> (T entity, idbtransaction transaction = null) where t:class {
bool isOk = dbsession.connection.update<t> (entity, transaction, DatabaseType:DBSession.DatabaseType);
return isOk;
}
//<summary>
//delete a single record
//</summary>
//<typeparam name= "T" ></typeparam>
//<param name= "Primaryid" ></PARAM>
//<param name= "Transaction" ></PARAM>
// <RETURNS></RETURNS>
public int delete<t> (dynamic Primaryid, idbtransaction transaction = null) where T:class
{
var entity = getbyid<t> (Primaryid);
var obj = entity as T;
int isOk = dbsession.co Nnection. Delete<t> (obj, databaseType:DBSession.DatabaseType);
return isOk;
}
//<summary>
//delete a single record
//</summary>
//<typeparam name= "T" ></typeparam>
//<param name= "predicate" ></PARAM>
//<param name= "Transaction" ></PARAM>
// <returns></returns>
Public int deletelist<t> (object predicate = NULL, idbtransaction transaction = null) where T:class
{
return dbsession.connection.delete<t> (predicate, transaction, databasetype:dbses Sion. DatabaseType);
}
//<summary>
//BULK Insert Function
//</SUMMARY>
//<typeparam name= "T" ></typeparam>
//<param name= "Entitylist" ></PARAM>
//<param name= "Transaction" ></PARAM>
public bool Insertbatch<t> (ienumerable<t> entitylist, idbtransaction transaction = null) where T:class
{
bool isOk = false;
foreach (var item in entitylist)
{
Insert<t> (item, transaction);
}
IsOk = true;
return isOk;
}
//<summary>
//Bulk update ()
//</summary>
//<typeparam name= "T" ></typeparam>
//<param name= "Entitylist" ></PARAM>
//<param name= "Transaction" ></PARAM>
// <RETURNS></RETURNS>
public bool Updatebatch<t> (ienumerable<t> entitylist, IDbTransaction transaction = null) where T:class
{
bool isOk = false;
foreach (var item in entitylist)
{
update<t> (item, transaction);
}
IsOk = true;
return isOk;
}
<summary>
Bulk Delete
</summary>
<typeparam name= "T" ></typeparam>
<param name= "IDs" ></param>
<param name= "Transaction" ></param>
<returns></returns>
public bool Deletebatch<t> (ienumerable<dynamic> IDs, idbtransaction transaction = null) where T:class
{
BOOL IsOk = false;
foreach (var id in IDs)
{
Delete<t> (ID, transaction);
}
IsOk = true;
return isOk;
}
}
}
Using System;
Using System.Collections.Generic;
Using System.Data;
Using Dapper;
Using Dapperextensions;
Using HY. DataAccess;
Namespace HY. Orm
{
<summary>
Repository base class
</summary>
public class Repositorybase:repositoryservicebase, idatarepository
{
Public Repositorybase ()
{
}
Public new void Setdbsession (Idbsession dbsession)
{
Base. Setdbsession (dbsession);
}
Public Repositorybase (Idbsession dbsession)
: Base (Dbsession)
{
}
<summary>
Filter out data collections based on criteria
</summary>
<typeparam name= "T" ></typeparam>
<param name= "SQL" ></param>
<param name= "param" ></param>
<param name= "Buffered" ></param>
<returns></returns>
Public ienumerable<t> get<t> (String sql, dynamic param = NULL, bool buffered = true) where T:class
{
return dbsession.connection.query<t> (SQL, Param as object, dbsession.transaction, buffered);
}
<summary>
Filter data collections based on criteria
</summary>
<param name= "SQL" ></param>
<param name= "param" ></param>
<param name= "Buffered" ></param>
<returns></returns>
Public ienumerable<dynamic> Get (String sql, dynamic param = NULL, bool buffered = TRUE)
{
return DBSession.Connection.Query (SQL, Param as object, dbsession.transaction, buffered);
}
<summary>
Paging Query
</summary>
<typeparam name= "T" ></typeparam>
<param name= "PageIndex" ></param>
<param name= "PageSize" ></param>
<param name= "Allrowscount" ></param>
<param name= "SQL" ></param>
<param name= "param" ></param>
<param name= "Allrowscountsql" ></param>
<param name= "Allrowscountparam" ></param>
<param name= "Buffered" ></param>
<returns></returns>
Public ienumerable<t> getpage<t> (int pageIndex, int. pageSize, Out long allrowscount, string sql, dynamic param = NULL, string allrowscountsql = null, dynamic Allrowscountparam = NULL, BOOL buffered = true) where T:class
{
ienumerable<t> entitylist = dbsession.connection.getpage<t> (PageIndex, pageSize, out Allrowscount, SQL, Param as Object, allrowscountsql, NULL, NULL, buffered, databaseType:DBSession.DatabaseType);
return entitylist;
}
<summary>
Filter by an expression
</summary>
<typeparam name= "TFirst" ></typeparam>
<typeparam name= "Tsecond" ></typeparam>
<typeparam name= "Treturn" ></typeparam>
<param name= "SQL" ></param>
<param name= "Map" ></param>
<param name= "param" ></param>
<param name= "Transaction" ></param>
<param name= "Buffered" ></param>
<param name= "SplitOn" ></param>
<param name= "CommandTimeout" ></param>
<returns></returns>
Public ienumerable<treturn> Get<tfirst, Tsecond, treturn> (String sql, Func<tfirst, Tsecond, TReturn> Map
Dynamic param = NULL, idbtransaction transaction = NULL, BOOL buffered = True, string splitOn = "Id",
Int? CommandTimeout = null)
{
return DBSession.Connection.Query (SQL, map, param as Object, transaction, buffered, SplitOn);
}
<summary>
Filter by an expression
</summary>
<typeparam name= "TFirst" ></typeparam>
<typeparam name= "Tsecond" ></typeparam>
<typeparam name= "Treturn" ></typeparam>
<param name= "SQL" ></param>
<param name= "Map" ></param>
<param name= "param" ></param>
<param name= "Transaction" ></param>
<param name= "Buffered" ></param>
<param name= "SplitOn" ></param>
<param name= "CommandTimeout" ></param>
<returns></returns>
Public ienumerable<treturn> Get<tfirst, Tsecond, Tthird, treturn> (String sql, Func<tfirst, TSecond, Tthird, treturn> Map,
Dynamic param = NULL, idbtransaction transaction = NULL, BOOL buffered = True, string splitOn = "Id",
Int? CommandTimeout = null)
{
return DBSession.Connection.Query (SQL, map, param as Object, transaction, buffered, SplitOn);
}
<summary>
Get a multi-entity collection
</summary>
<param name= "SQL" ></param>
<param name= "param" ></param>
<param name= "Transaction" ></param>
<param name= "CommandTimeout" ></param>
<param name= "CommandType" ></param>
<returns></returns>
Public sqlmapper.gridreader getmultiple (String sql, dynamic param = null, idbtransaction transaction = NULL,
Int? CommandTimeout = null, commandtype? CommandType = null)
{
return DBSession.Connection.QueryMultiple (SQL, Param as object, transaction, CommandTimeout, CommandType);
}
<summary>
Execute SQL operation
</summary>
<param name= "SQL" ></param>
<param name= "param" ></param>
<returns></returns>
public int Execute (String sql, dynamic param = null, idbtransaction transaction = null)
{
return DBSession.Connection.Execute (SQL, Param as object, transaction);
}
}
}
Basic usage of dapperextensions