zoukankan      html  css  js  c++  java
  • 使用DapperExtensions实现简单仓储

    Dapper是一个轻量级的ORM框架,它只是一个IDbConnection的扩展文件。所以我们需要手写很多SQL,但是写CRUD的代码总是很无趣的。所有就有了DapperExtensions。DapperExtensions对Dapper提供了更多的扩展,可以不用写SQL就实现CRUD操作跟简单的查询功能。话不多说还是直接上代码吧。

      class ConnectionFactory
        {
            public static IDbConnection CreateConnection<T>() where T:IDbConnection,new ()
            {
                IDbConnection connection = new T();
                connection.ConnectionString = ConnectionConfig.ConnectionString;
                connection.Open();
                return connection;
            }
    
            public static IDbConnection CreateSqlConnection()
            {
                return CreateConnection<SqlConnection>();
            }
        }
    interface IRepository<T>
        {
            IEnumerable<T> GetList();
    
            T Get(object id);
    
            bool Update(T t);
    
            T Insert(T apply);
    
            bool Delete(T t);
    
            IEnumerable<T> Find(Expression<Func<T, object>> expression, Operator op, object param);
        }
    class SqlRepository<T> : IRepository<T> where T : class, IEntity
        {
            public virtual IEnumerable<T> GetList()
            {
                using (var conn = ConnectionFactory.CreateSqlConnection())
                {
                    return conn.GetList<T>();
                }
    
            }
    
            public virtual T Get(object id)
            {
                using (var conn = ConnectionFactory.CreateSqlConnection())
                {
                    return conn.Get<T>(id);
                }
            }
    
            public virtual bool Update(T t)
            {
                using (var conn = ConnectionFactory.CreateSqlConnection())
                {
                    return conn.Update(t);
                }
            }
    
            public virtual T Insert(T apply)
            {
                using (var conn = ConnectionFactory.CreateSqlConnection())
                {
                    conn.Insert(apply);
                    return apply;
                }
            }
    
            public virtual bool Delete(T t)
            {
                using (var conn = ConnectionFactory.CreateSqlConnection())
                {
                    return conn.Delete(t);
                }
            }
    
            public virtual IEnumerable<T> Find(Expression<Func<T,object>> expression,Operator op,object param)
            {
                using (var conn = ConnectionFactory.CreateSqlConnection())
                {
                    return conn.GetList<T>(Predicates.Field<T>(expression, op, param));
                }
            }
    
        }

    恩,就是这么简单。

  • 相关阅读:
    Hello World
    JAVA环境变量配置
    基本的Dos命令
    博客的重要性
    MySQL——合并查询结果
    mysql中使用正则表达式查询
    MySQL高级查询
    MySQL之常用函数
    MySQL之多表操作
    MySQL之增删改查
  • 原文地址:https://www.cnblogs.com/kklldog/p/dapperExt.html
Copyright © 2011-2022 走看看