Пример #1
0
        static void Main5(string[] args)
        //static void Main(string[] args)
        {
            DynamicParametersDemo client = new DynamicParametersDemo();

            Console.WriteLine("开始执行InsertDapperDemo():");
            DapperDemoEntity dapperDemo = new DapperDemoEntity()
            {
                ParentID       = 0,
                DapperDemoName = "上海市",
                Type           = Common.Type.C,
                ModifiedDate   = DateTime.Now
            };

            dapperDemo.ID = client.InsertDapperDemo(dapperDemo);
            if (dapperDemo.ID > 0)
            {
                Console.WriteLine("新增成功:新增记录的ID为{0},ParentID为{1},Name为{2},Type为{3}。", dapperDemo.ID, dapperDemo.ParentID, dapperDemo.DapperDemoName, dapperDemo.Type);
            }
            else
            {
                Console.WriteLine("新增失败。");
            }

            Console.ReadLine();
        }
Пример #2
0
        static void Main3(string[] args)
        //static void Main(string[] args)
        {
            QueryMultipleDemo        clientQueryMultiple = new QueryMultipleDemo();
            IList <DapperDemoEntity> dapperDemoList      = null;
            DapperDemoEntity         dapperDemo          = null;

            #region QueryMultiple方法

            Console.WriteLine("开始执行GetUseQueryMultiple():");
            dapperDemoList = clientQueryMultiple.GetUseQueryMultiple();
            if (dapperDemoList != null && dapperDemoList.Any())
            {
                dapperDemo = dapperDemoList[0];
                if (dapperDemo.ParentDapperDemo != null)
                {
                    Console.WriteLine("执行成功。第1条记录的DapperDemoName为{0}(ID为{1},Type为{2}),其ParentName为{3}(ParentID为{4},ParentType为{5})。", dapperDemo.DapperDemoName, dapperDemo.ID, dapperDemo.Type, dapperDemo.ParentDapperDemo.DapperDemoParentName, dapperDemo.ParentDapperDemo.ParentID, dapperDemo.ParentDapperDemo.ParentType);
                }
                else
                {
                    Console.WriteLine("执行成功。第1条记录的DapperDemoName为{0}(ID为{1},Type为{2}),但没有其ParentDapperDemo。", dapperDemo.DapperDemoName, dapperDemo.ID, dapperDemo.Type);
                }
            }
            else
            {
                Console.WriteLine("执行成功:没记录。");
            }
            Console.ReadLine();

            #endregion
        }
Пример #3
0
 /// <summary>
 /// 删除单条记录
 /// </summary>
 /// <param name="dapperDemo"></param>
 /// <returns></returns>
 public int DeleteDapperDemo(DapperDemoEntity dapperDemo)
 {
     using (IDbConnection connection = Common.OpenConnection())
     {
         const string sql = @"DELETE FROM dbo.DapperNETDemo WHERE ParentID > 0 AND ID = @ID";
         return(connection.Execute(sql, dapperDemo));
     }
 }
Пример #4
0
        /// <summary>
        /// 新增单条记录
        /// </summary>
        /// <param name="dapperDemo"></param>
        /// <returns>返回新增的ID</returns>
        /// <remarks>注意:这个例子使用的是Query泛型方法,不是Execute方法</remarks>
        public int InsertDapperDemo(DapperDemoEntity dapperDemo)
        {
            using (IDbConnection connection = Common.OpenConnection())
            {
                const string sql =
                    @"INSERT INTO dbo.DapperNETDemo(ParentID, [Name], [Type], ModifiedDate) VALUES (@ParentID, @DapperDemoName, @Type, @ModifiedDate);
  SELECT CAST(SCOPE_IDENTITY() AS INT)";

                int dapperDemoID = connection.Query <int>(sql, dapperDemo).Single();
                return(dapperDemoID);
            }
        }
Пример #5
0
        /// <summary>
        /// 批量删除
        /// </summary>
        /// <param name="dapperDemo"></param>
        /// <returns></returns>
        /// <remarks>用到了Transaction</remarks>
        public int DeleteDapperDemoList(DapperDemoEntity dapperDemo)
        {
            using (IDbConnection connection = Common.OpenConnection())
            {
                const string deleteChildSQL  = @"DELETE FROM dbo.DapperNETDemo WHERE ParentID > 0 AND ParentID = @ParentID";
                const string deleteParentSQL = @"DELETE FROM dbo.DapperNETDemo WHERE ParentID < 1 AND ID = @ParentID";

                IDbTransaction transaction  = connection.BeginTransaction();
                int            rowsAffected = connection.Execute(deleteChildSQL, new { ParentID = dapperDemo.ParentID }, transaction);
                rowsAffected += connection.Execute(deleteParentSQL, new { ParentID = dapperDemo.ParentID }, transaction);
                transaction.Commit();
                return(rowsAffected);
            }
        }
Пример #6
0
       /// <summary>
       /// 更新单条记录
       /// </summary>
       /// <param name="dapperDemo"></param>
       /// <returns></returns>
       public int UpdateDapperDemo(DapperDemoEntity dapperDemo)
       {
           using (IDbConnection connection = Common.OpenConnection())
           {
               const string sql =
                   @"UPDATE dbo.DapperNETDemo 
 SET ParentID = @ParentID, 
      [Name] = @DapperDemoName,
      [Type] = @Type,
      ModifiedDate = @ModifiedDate 
 WHERE ID = @ID";
               return(connection.Execute(sql, dapperDemo));
           }
       }
Пример #7
0
        /// <summary>
        /// 新增单条记录
        /// </summary>
        /// <param name="dapperDemo"></param>
        /// <returns>返回新增的ID</returns>
        public int InsertDapperDemo(DapperDemoEntity dapperDemo)
        {
            using (IDbConnection connection = Common.OpenConnection())
            {
                const string sql =
                    @"INSERT INTO dbo.DapperNETDemo(ParentID, [Name], [Type], ModifiedDate) VALUES (@ParentID, @DapperDemoName, @Type, @ModifiedDate);
  SELECT CAST(SCOPE_IDENTITY() AS INT)";

                DynamicParameters dp = new DynamicParameters();
                dp.Add("@ParentID", dapperDemo.ParentID, DbType.Int32);
                //注意:当数据库表字段被设计为char类型时,必须给DbType传值,且必须赋的是DbType.AnsiStringFixedLength,否则数据库访问速度会突然变得很慢。
                dp.Add("@DapperDemoName", dapperDemo.DapperDemoName, DbType.String, ParameterDirection.Input, 100);
                dp.Add("@Type", dapperDemo.Type, DbType.Int32);
                dp.Add("@ModifiedDate", dapperDemo.ModifiedDate, DbType.DateTime);

                int dapperDemoID = connection.Query <int>(sql, dp).Single();
                return(dapperDemoID);
            }
        }
Пример #8
0
        //static void Main1(string[] args)
        static void Main(string[] args)
        {
            ExecuteDemo clientExecute = new ExecuteDemo();
            QueryDemo   clientQuery   = new QueryDemo();
            IList <DapperDemoEntity> dapperDemoList = null;
            DapperDemoEntity         dapperDemo     = null;
            int rowAffected     = -1;
            int newDapperDemoId = -1;

            int mainId = -1;

            #region Execute方法

            #region 新增单条记录1

            Console.WriteLine("开始执行InsertDapperDemo():");
            dapperDemo = new DapperDemoEntity()
            {
                ParentID       = 0,
                DapperDemoName = "广州市",
                Type           = Common.Type.A,
                ModifiedDate   = DateTime.Now
            };
            dapperDemo.ID   = clientExecute.InsertDapperDemo(dapperDemo);
            newDapperDemoId = dapperDemo.ID;
            mainId          = newDapperDemoId;
            if (newDapperDemoId > 0)
            {
                Console.WriteLine("新增成功:新增记录的ID为{0},ParentID为{1},Name为{2},Type为{3}。", newDapperDemoId, dapperDemo.ParentID, dapperDemo.DapperDemoName, dapperDemo.Type);
            }
            else
            {
                Console.WriteLine("新增失败。");
            }

            Console.ReadLine();

            #endregion

            Console.WriteLine("=======");

            #region 新增单条记录2

            Console.WriteLine("开始执行InsertDapperDemo():");
            dapperDemo = new DapperDemoEntity()
            {
                ParentID       = newDapperDemoId,
                DapperDemoName = "越秀区",
                Type           = Common.Type.B,
                ModifiedDate   = DateTime.Now
            };
            dapperDemo.ID   = clientExecute.InsertDapperDemo(dapperDemo);
            newDapperDemoId = dapperDemo.ID;
            if (newDapperDemoId > 0)
            {
                Console.WriteLine("新增成功:新增记录的ID为{0},ParentID为{1},Name为{2},Type为{3}。", newDapperDemoId, dapperDemo.ParentID, dapperDemo.DapperDemoName, dapperDemo.Type);
            }
            else
            {
                Console.WriteLine("新增失败。");
            }

            Console.ReadLine();

            #endregion

            Console.WriteLine("=======");

            #region 更新单条记录

            Console.WriteLine("开始执行UpdateDapperDemo():");

            dapperDemoList = clientQuery.GetChildDapperDemoWithParentList().ToList();
            if (dapperDemoList != null && dapperDemoList.Count > 0)
            {
                dapperDemo = dapperDemoList[0];
                Console.WriteLine("将更新记录ID为{0}的Name【{1}】。", dapperDemo.ID, dapperDemo.DapperDemoName);
                Console.ReadLine();

                dapperDemo.DapperDemoName += "_updated_" + dapperDemo.ID;
                dapperDemo.ModifiedDate    = DateTime.Now;
                rowAffected = clientExecute.UpdateDapperDemo(dapperDemo);

                if (rowAffected == 1)
                {
                    int id = dapperDemo.ID;
                    dapperDemo = clientQuery.GetDapperDemo(id, false);
                    if (dapperDemo != null)
                    {
                        Console.WriteLine("更新成功:ID为{0}这个的Name已被更新为【{1}】。", dapperDemo.ID, dapperDemo.DapperDemoName);
                    }
                }
                else
                {
                    Console.WriteLine("更新失败。");
                }
            }
            else
            {
                Console.WriteLine("没有DapperDemo被更新。");
            }

            Console.ReadLine();

            #endregion

            Console.WriteLine("=======");

            #region  除单条记录

            Console.WriteLine("开始执行DeleteDapperDemo():");

            dapperDemoList = clientQuery.GetChildDapperDemoWithParentList().ToList();
            if (dapperDemoList != null && dapperDemoList.Count > 0)
            {
                dapperDemo = dapperDemoList[0];
                Console.WriteLine("将删除ID为{0}的记录(其Name为{1})。", dapperDemo.ID, dapperDemo.DapperDemoName);
                Console.ReadLine();

                rowAffected = clientExecute.DeleteDapperDemo(dapperDemo);

                dapperDemo = clientQuery.GetDapperDemo(dapperDemo.ID, false);
                if (rowAffected == 1 && dapperDemo == null)
                {
                    Console.WriteLine("删除成功。");
                }
                else
                {
                    Console.WriteLine("删除失败。");
                }
            }
            else
            {
                Console.WriteLine("没有DapperDemo被删除。");
            }


            Console.ReadLine();

            #endregion

            Console.WriteLine("=======");

            #region 批量新增

            Console.WriteLine("开始执行InsertDapperDemoList():");
            Console.ReadLine();

            DateTime modifiedDate = DateTime.Now;

            dapperDemoList = new List <DapperDemoEntity>();
            dapperDemo     = new DapperDemoEntity()
            {
                ParentID       = 0,
                DapperDemoName = "上海市",
                Type           = Common.Type.C,
                ModifiedDate   = modifiedDate
            };
            dapperDemoList.Add(dapperDemo);
            dapperDemo = new DapperDemoEntity()
            {
                ParentID       = mainId,
                DapperDemoName = "天河区",
                Type           = Common.Type.B,
                ModifiedDate   = modifiedDate
            };
            dapperDemoList.Add(dapperDemo);
            dapperDemo = new DapperDemoEntity()
            {
                ParentID       = mainId,
                DapperDemoName = "海珠区",
                Type           = Common.Type.A,
                ModifiedDate   = modifiedDate
            };
            dapperDemoList.Add(dapperDemo);

            rowAffected = clientExecute.InsertDapperDemoList(dapperDemoList);
            if (rowAffected == 3)
            {
                Console.WriteLine("共{0}条记录被批量新增。", rowAffected);
            }
            else
            {
                Console.WriteLine("批量新增失败。");
            }

            Console.ReadLine();

            #endregion

            Console.WriteLine("=======");

            #region 批量更新

            Console.WriteLine("开始执行UpdateDapperDemoList():");

            modifiedDate = DateTime.Now;

            List <DapperDemoEntity> childList = clientQuery.GetChildDapperDemoWithParentList().ToList();
            if (childList != null && childList.Count > 0)
            {
                string updatedIDs = string.Empty;

                dapperDemoList = new List <DapperDemoEntity>();

                dapperDemo = childList[0];
                dapperDemo.DapperDemoName += "_updatedList_" + dapperDemo.ID;
                dapperDemo.ModifiedDate    = modifiedDate;
                dapperDemoList.Add(dapperDemo);
                updatedIDs = dapperDemo.ID.ToString();

                if (childList.Count > 1)
                {
                    dapperDemo = childList[1];
                    dapperDemo.DapperDemoName += "_updatedList_" + dapperDemo.ID;
                    dapperDemo.ModifiedDate    = modifiedDate;
                    dapperDemoList.Add(dapperDemo);

                    updatedIDs += "," + dapperDemo.ID.ToString();
                }

                Console.WriteLine("将被更新的记录ID有【{0}】。", updatedIDs);
                Console.ReadLine();

                rowAffected = clientExecute.UpdateDapperDemoList(dapperDemoList);
                if (rowAffected > 0)
                {
                    Console.WriteLine("共{0}条记录被批量更新,被更新的记录ID有【{1}】。", rowAffected, updatedIDs);
                }
                else
                {
                    Console.WriteLine("没有记录被更新。");
                }
            }
            else
            {
                Console.WriteLine("没有记录被更新。");
            }

            Console.ReadLine();

            #endregion

            Console.WriteLine("=======");

            #region 批量删除

            Console.WriteLine("开始执行DeleteDapperDemoList():");

            modifiedDate = DateTime.Now;

            childList = clientQuery.GetChildDapperDemoWithParentList().ToList();
            if (childList != null && childList.Count > 0)
            {
                string deletedIDs = string.Empty;

                dapperDemo = childList[0];
                dapperDemoList.Add(dapperDemo);
                deletedIDs = dapperDemo.ID.ToString();

                if (childList.Count > 1)
                {
                    dapperDemo = childList[1];
                    dapperDemoList.Add(dapperDemo);

                    deletedIDs += "," + dapperDemo.ID.ToString();
                }

                Console.WriteLine("将被删除的记录ID有【{0}】。", deletedIDs);
                Console.ReadLine();

                rowAffected = clientExecute.DeleteDapperDemoList(dapperDemoList);
                if (rowAffected > 0)
                {
                    Console.WriteLine("共{0}条记录被批量删除,被删除的记录ID有【{1}】。", rowAffected, deletedIDs);
                }
                else
                {
                    Console.WriteLine("没有记录被删除。");
                }
            }
            else
            {
                Console.WriteLine("没有记录被删除。");
            }

            Console.ReadLine();

            #endregion

            Console.WriteLine("=======");

            #region 批量删除

            Console.WriteLine("开始执行DeleteDapperDemoList():");

            List <DapperDemoEntity> list = clientQuery.GetDapperDemoList().ToList();
            if (list != null && list.Count > 0)
            {
                dapperDemo = list[0];
                if (dapperDemo.ParentID < 1)
                {
                    dapperDemo.ParentID = dapperDemo.ID;
                }

                Console.WriteLine("将被删除的记录ID为{0}以及其其下所有子记录。", dapperDemo.ParentID);
                Console.ReadLine();

                rowAffected = clientExecute.DeleteDapperDemoList(dapperDemo);
                if (rowAffected > 0)
                {
                    Console.WriteLine("共{0}条记录被批量删除,被删除的记录ID为{1}以及其其下所有子记录。", rowAffected, dapperDemo.ParentID);
                }
                else
                {
                    Console.WriteLine("没有记录被删除。");
                }
            }
            else
            {
                Console.WriteLine("没有记录被删除。");
            }

            #endregion

            Console.ReadLine();

            #endregion
        }
Пример #9
0
        static void Main2(string[] args)
        //static void Main(string[] args)
        {
            QueryDemo clientQuery = new QueryDemo();

            IList <DapperDemoEntity> dapperDemoList = null;
            DapperDemoEntity         dapperDemo     = null;
            dynamic dapperDemoDynamic = null;

            DateTime modifiedDate = DateTime.Now;

            #region Query方法

            #region 获得列表

            Console.WriteLine("开始执行GetDapperDemoList():");
            dapperDemoList = clientQuery.GetDapperDemoList().ToList <DapperDemoEntity>();
            Console.WriteLine("执行成功:共有{0}条记录。", dapperDemoList.Count());
            Console.ReadLine();

            #endregion

            Console.WriteLine("=======");

            #region 获得列表(需要返回列表中的每个对象所包含的另1个对象)

            Console.WriteLine("开始执行GetDapperDemoWithParentList():");
            dapperDemoList = clientQuery.GetChildDapperDemoWithParentList().ToList <DapperDemoEntity>();
            Console.WriteLine("执行成功:共有{0}条记录。", dapperDemoList.Count());
            if (dapperDemoList != null && dapperDemoList.Any() && dapperDemoList[0].ParentDapperDemo != null)
            {
                Console.WriteLine("其中,第1条记录的Name为:{0},Type为:{1},ParentName为:{2}。", dapperDemoList[0].DapperDemoName, dapperDemoList[0].ParentDapperDemo.DapperDemoParentName, dapperDemoList[0].Type);
            }
            Console.ReadLine();

            #endregion

            Console.WriteLine("=======");

            #region 获得单个对象(没记录的情况)

            Console.WriteLine("开始执行GetDapperDemo():");
            dapperDemo = clientQuery.GetDapperDemo(2000, null);
            if (dapperDemo != null)
            {
                Console.WriteLine("执行成功:ID为{0},Name为{1},Type为{2}。", dapperDemo.ID, dapperDemo.DapperDemoName, dapperDemo.Type);
            }
            else
            {
                Console.WriteLine("执行成功:没有ID为2000的DapperDemo。");
            }
            Console.ReadLine();

            #endregion

            Console.WriteLine("=======");

            List <DapperDemoEntity> list = clientQuery.GetDapperDemoList().ToList();

            #region 获得单个对象(有记录的情况)

            Console.WriteLine("开始执行GetDapperDemo():");

            if (list != null && list.Count > 0)
            {
                dapperDemo = clientQuery.GetDapperDemo(list[0].ID, null);
            }
            if (dapperDemo != null)
            {
                Console.WriteLine("执行成功:ID为{0},Name为{1},Type为{2}。", dapperDemo.ID, dapperDemo.DapperDemoName, dapperDemo.Type);
            }
            else
            {
                Console.WriteLine("执行成功:没有记录。");
            }

            Console.ReadLine();

            #endregion

            Console.WriteLine("=======");

            #region 获得动态对象(没记录的情况)

            Console.WriteLine("开始执行GetDapperDemoDynamic():");
            dapperDemoDynamic = clientQuery.GetDapperDemoDynamic(2000, null);
            if (dapperDemoDynamic != null)
            {
                Console.WriteLine("执行成功:ID为{0},Name为{1},Type为{2}。", dapperDemoDynamic.ID, dapperDemoDynamic.DapperDemoName, dapperDemoDynamic.Type);
            }
            else
            {
                Console.WriteLine("执行成功:没有ID为2000的DapperDemo。");
            }
            Console.ReadLine();

            #endregion

            Console.WriteLine("=======");

            #region 获得动态对象(有记录的情况)

            Console.WriteLine("开始执行GetDapperDemoDynamic():");
            if (list != null && list.Count > 0)
            {
                dapperDemoDynamic = clientQuery.GetDapperDemo(list[0].ID, null);
            }
            if (dapperDemoDynamic != null)
            {
                Console.WriteLine("执行成功:ID为{0},Name为{1},Type为{2}。", dapperDemoDynamic.ID, dapperDemoDynamic.DapperDemoName, dapperDemoDynamic.Type);
            }
            else
            {
                Console.WriteLine("执行成功:没有记录。");
            }

            #endregion

            Console.ReadLine();

            #endregion
        }