ORM- Dapper -增删改查

一、什么是Dapper?

Dapper是一款轻量级Orm框架,它是属于半自动的,它和Entity Framework和NHibernate不同,它只有一个单文件,没有很复杂的配置,如果你喜欢原生Sql语句,而且又是喜欢Orm框架,那么Dapper对于你来说是再适合不过了。

二、Dapper优点
我也是刚开始学习Dapper,让我自己去总结它的优点,可能也就还没真正去体验到带来的好。所以我也是抱着学习的态度,去参考一些大佬给它总结的优点:

1、轻量级、单文件。
2、支持多数据,而且性能优越。

3、Dapper原理通过Emit反射IDataReader的序列队列,来快速的得到和产生对象。

三:具体事例代码实现

1:添加引用,我们需要在我们项目中添加Dapper  Nuget包,然后点击安装就可以了。

2:配置连接数据库方式:跟ADO.net差不多

 获取配置文件的链接数据库字符串

通用类

public class ConfigurationUtil
    {
        /// <summary>
        /// 获取AppSettings 值
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetValue(string key)
        {
            return ConfigurationManager.AppSettings.Get(key);
        }
        /// <summary>
        /// 获取ConnectionString
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetConnValue(string key)
        {
            return ConfigurationManager.ConnectionStrings[key].ConnectionString;
        }
    }

获取配置文件的链接数据库字符串

        private static readonly string _ConnStr = ConfigurationUtil.GetConnValue("ConnStr");
        protected SqlConnection GetYiBonSqlConnection() { return new SqlConnection(_ConnStr); }

//查询方法 查询所有数据

public List<YiBonHotelMapEntity> QueryFokasList()
        {
            List<YiBonHotelMapEntity> list = null;
            string sql = @"select  [FokasID]
                              ,[ActivityID]
                              ,[FokasName]
                              ,[FokasCount]
                              ,[Probability]
                              ,[UseCount]
                              ,[OrderNum]
                              ,[IsAdequate]
                              ,[PrizeLevel]
                              ,[ValidityStartTime]
                              ,[ValidityEndTime]
                              ,[Disabled]
                              ,[CreateTime]  from [AC_Fokas] WITH(NOLOCK) ";
            using (var conn = GetYiBonSqlConnection())
            {
                list = conn.Query<YiBonHotelMapEntity>(sql).ToList();
                conn.Dispose();
            }
            return list;
        }

// 带 条件 查询

   public List<YiBonHotelMapEntity> QueryFokas(string FokasID)
        {
            List<YiBonHotelMapEntity> list = null;
            string sql = @"SELECT   [FokasID]
                              ,[ActivityID]
                              ,[FokasName]
                              ,[FokasCount]
                              ,[Probability]
                              ,[UseCount]
                              ,[OrderNum]
                              ,[IsAdequate]
                              ,[PrizeLevel]
                              ,[ValidityStartTime]
                              ,[ValidityEndTime]
                              ,[Disabled]
                              ,[CreateTime]  from [AC_Fokas] WITH(NOLOCK)  WHERE FokasID = @FokasID  ";
            using (var conn = GetYiBonSqlConnection())
            {
                list = conn.Query<YiBonHotelMapEntity>(sql, new { FokasID = FokasID }).ToList(); 
                conn.Dispose();
            }
            return list;
        }

// 新增

public int intserFokas(List<YiBonHotelMapEntity> entities)
        {
            int rows = 0;
            string sql = @"INSERT INTO [AC_Fokas](
                              [ActivityID]
                              ,[FokasName]
                              ,[FokasCount]
                              ,[Probability]
                              ,[UseCount]
                              ,[OrderNum]
                              ,[IsAdequate]
                              ,[PrizeLevel]
                              ,[ValidityStartTime]
                              ,[ValidityEndTime]
                              ,[Disabled]
                              ,[CreateTime])
                VALUES(@ActivityID,@FokasName,@FokasCount,@Probability,@UseCount,@OrderNum,@IsAdequate,@PrizeLevel,@ValidityStartTime,@ValidityEndTime,@Disabled,@CreateTime)";
            using (var conn = GetYiBonSqlConnection())
            {
                conn.Open();
                IDbTransaction trans = conn.BeginTransaction();
                try
                {
                    rows = conn.Execute(sql, entities.ToArray(), trans);
                    trans.Commit();
                }
                catch (Exception ex)
                {
                    rows = 0;
                    trans.Rollback();
                    throw;
                }
                finally
                {
                    if (trans != null)
                        trans.Dispose();
                    if (conn != null)
                        conn.Dispose();
                }
            }
            return rows;
        }

// 修改

 public int updateFokas(YiBonHotelMapEntity entities)
        {

            int rows = 0;
            string sql = sql = "UPDATE dbo.[AC_Fokas] SET FokasName = @FokasName,ModifyTime = GETDATE(),ActivityID=@ActivityID WHERE FokasID = @FokasID"; ;
            using (var conn = GetYiBonSqlConnection())
            {
                rows = conn.Execute(sql, entities);
                conn.Dispose();
            }
            return rows;
        }

   /// 用string参数修改
        public int UpdateBookRoom(string FokasName, string FokasID)
        {

            int rows = 0;
            string sql = sql = "UPDATE dbo.[AC_Fokas] SET FokasName = @FokasName,ModifyTime = GETDATE() WHERE FokasID = @FokasID"; ;
            using (var conn = GetYiBonSqlConnection())
            {
                rows = conn.Execute(sql, new { FokasName = FokasName, FokasID = FokasID });
                conn.Dispose();
            }
            return rows;
        }

 
        /// 删除
        public int DeleteBookRoom(string FokasID)
        {

            int rows = 0;
            string sql = sql = "delete dbo.[AC_Fokas]   WHERE FokasID = @FokasID"; ;
            using (var conn = GetYiBonSqlConnection())
            {
                rows = conn.Execute(sql, new { FokasID = FokasID });
                conn.Dispose();
            }
            return rows;
        }

发布了225 篇原创文章 · 获赞 14 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/xulong5000/article/details/103843606