Dapper基礎知識二
阿新 • • 發佈:2018-11-29
在下剛畢業工作,之前實習有用到Dapper?這幾天新專案想用上Dapper,在下比較菜鳥,這塊只是個人對Dapper的一種總結。
2,如何使用Dapper?
首先Dapper是支援多種資料庫的,當時在學習的時候參考藍老師的資料https://www.cnblogs.com/lanxiaoke/p/6503022.html。
Dapper支援多資料庫的工廠類,設計模式的工廠模式,Skr· Skr~。
public interface IRepository<T> where T : class {void Add(T entity); void AddBatch(IEnumerable<T> entitys); void Update(T entity); void Delete(T entity); void Delete(string Id); void Delete(int Id); void Delete(Guid Id); T Get(string Id); T Get(Guid Id); T Get(int Id); T Get(T entity); T Get(Expression<Func<T, bool>> func); IEnumerable<T> GetAll(); IEnumerable<T> GetList(Expression<Func<T, bool>> where = null, Expression<Func<T, bool>> order = null); Tuple<int, IEnumerable<T>> GetPage(Page page, Expression<Func<T, bool>> where = null, Expression<Func<T, bool>> order = null); long Count(Expression<Func<T, bool>> where = null); }
public class IDapperRepository<T> :IRepository<T> where T:class { protected IDbConnection Conn { get; private set; } public IDapperRepository() { Conn = DbConnectionFactory.CreateDbConnection(); } public void SetDbConnection(IDbConnection conn) { Conn = conn; } public void Add(T entity) { Conn.Insert<T>(entity); } public void AddBatch(IEnumerable<T> entitys) { foreach (T entity in entitys) { Add(entity); } } public void Update(T entity) { Conn.Update(entity); } public void Delete(T entity) { Conn.Delete(entity); } public void Delete(string Id) { var entity = Get(Id); if (entity == null) return; Delete(entity); } public void Delete(int Id) { var entity = Get(Id); if (entity == null) return; Delete(entity); } public void Delete(Guid Id) { var entity = Get(Id); if (entity == null) return; Delete(entity); } public T Get(T entity) { return Conn.Get<T>(entity); } public T Get(Guid Id) { return Conn.Get<T>(Id); } public T Get(string Id) { return Conn.Get<T>(Id); } public T Get(int Id) { return Conn.Get<T>(Id); } public T Get(Expression<Func<T, bool>> func) { throw new NotImplementedException(); } public IEnumerable<T> GetAll() { throw new NotImplementedException(); } public IEnumerable<T> GetList(Expression<Func<T, bool>> where = null, Expression<Func<T, bool>> order = null) { throw new NotImplementedException(); } public Tuple<int, IEnumerable<T>> GetPage(Page page, Expression<Func<T, bool>> where = null, Expression<Func<T, bool>> order = null) { throw new NotImplementedException(); } public long Count(Expression<Func<T, bool>> where = null) { throw new NotImplementedException(); } }
由於Dapper是對Sqlmapper的擴充套件,所以當引入Dapper或者Dapper的擴充套件類之後,例項化IDbConnection 就可以使用上面的Dapper已經封裝好的方法了。
具體Dapper如何使用可看上一篇的小白的參考資料
具體的方法可以檢視引用的物件瀏覽器
以上就是對Dapper的初級使用了。