public int Update(TEntity entity)
        {
            //UPDATE Customers SET Col1=@Col1,Col2=@Col2,Col3=@Col3;
            var props = _type.GetProperties();
            List <SqlParameter> sqlParameters = new List <SqlParameter>();

            foreach (var prop in props)
            {
                sqlParameters.Add(new SqlParameter($"@{prop.Name}", SqlHelperBase.ToDbValue(prop.GetValue(entity))));
            }

            return(_sqlHelperW.ExecuteNoQuery(_updateText, sqlParameters.ToArray()));
        }
        public object InsertBackRecord(TEntity entity)
        {
            //INSERT INTO Customers {col1,col2,clo3} VALUES(@Col1,@Col2,@Col3);

            var props = _type.GetProperties().Where(m => !m.Name.Equals("Id"));
            //var strCols = GetColumns().Where(m => !m.Equals("Id"));
            List <SqlParameter> sqlParameters = new List <SqlParameter>();

            foreach (var prop in props)
            {
                sqlParameters.Add(new SqlParameter($"@{prop.Name}", SqlHelperBase.ToDbValue(prop.GetValue(entity))));
            }

            return(_sqlHelperW.ExecuteScalar(_insertBackText, sqlParameters.ToArray()));
        }
        public int Insert(TEntity entity)
        {
            //INSERT INTO Customers {col1,col2,clo3} VALUES(@Col1,@Col2,@Col3);
            IEnumerable <PropertyInfo> props = _type.GetProperties().Where(m => !m.Name.Equals("Id"));
            //IEnumerable<string> strCols = GetColumns().Where(m => !m.Equals("Id"));

            List <SqlParameter> sqlParameters = new List <SqlParameter>();

            foreach (var prop in props)
            {
                sqlParameters.Add(new SqlParameter($"@{prop.Name}", SqlHelperBase.ToDbValue(prop.GetValue(entity))));
            }

            return(_sqlHelperW.ExecuteNoQuery(_insertText, sqlParameters.ToArray()));
        }
        private static TEntity ToModel(DataRow dr)
        {
            //如果给泛型加了一个new()的约束,那么次泛型可以直接通过new方法实例化
            //TEntity entity = new TEntity();
            //如果没有给泛型加new()的约束,则需要通过反射生成实例
            TEntity entity = (TEntity)Activator.CreateInstance(_type);
            var     props  = _type.GetProperties();

            foreach (var prop in props)
            {
                if (dr.Table.Columns.Contains(prop.Name))
                {
                    prop.SetValue(entity, SqlHelperBase.FromDbValue(dr[prop.Name]));
                }
            }
            return(entity);
        }