Example #1
0
        /// <summary>
        /// 执行多操作
        /// </summary>
        /// <typeparam name="T">实体</typeparam>
        /// <param name="dc"></param>
        /// <param name="intindex">0:添加操作 1:修改操作 2:删除操作 3:添加多条记录 4:删除多条记录</param>
        /// <param name="tentity">要添加的实体</param>
        /// <param name="fun">修改或删除的条件</param>
        /// <param name="action">修改的值</param>
        /// <param name="rbool">ture:执行操作 FALSE:不执行</param>
        /// <param name="tentitys">要添加或都要删除的实体集合</param>
        /// <returns></returns>
        public static bool ADD_Delete_UpdateMethod <T>(DCCarManagementDataContext dc, int intindex, T tentity, Expression <Func <T, bool> > fun, Action <T> action, bool rbool, IEnumerable <T> tentitys) where T : class
        {
            bool falg = true;

            if (intindex == 0)//添加
            {
                var table = dc.GetTable <T>();
                table.InsertOnSubmit(tentity);
            }
            if (intindex == 3)//添加多条记录
            {
                var table = dc.GetTable <T>();
                table.InsertAllOnSubmit(tentitys);
            }
            if (intindex == 1)//修改
            {
                var table = dc.GetTable <T>().Single <T>(fun);
                action(table);
            }
            if (intindex == 2)//删除
            {
                var table  = dc.GetTable <T>();
                var result = table.Where <T>(fun).AsEnumerable <T>();

                table.DeleteAllOnSubmit <T>(result);
            }
            if (intindex == 4)//删除多条记录
            {
                var table = dc.GetTable <T>();
                table.InsertAllOnSubmit(tentitys);
            }
            if (rbool)
            {
                try
                {
                    dc.SubmitChanges();
                }
                catch (ChangeConflictException err)
                {
                    dc.ChangeConflicts.ResolveAll(RefreshMode.KeepCurrentValues);
                    dc.SubmitChanges();
                    falg = false;
                }
            }
            return(falg);
        }
        public static List <Dictionary> GetListDictionary()
        {
            List <Dictionary> list = new List <Dictionary>();

            using (DCCarManagementDataContext db = new DCCarManagementDataContext())
            {
                Table <Dictionary> ti = db.GetTable <Dictionary>();
                var objTable          = from a in ti select a;
                list = objTable.ToList <Dictionary>();
            }
            return(list);
        }
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T">操作对象</typeparam>
        /// <param name="ClickedItemName">操作行为名 传入空值表示返回数据前10条</param>
        /// <param name="tstb">显示当前页数控件</param>
        /// <param name="tsl">显示总条数和每页条数的控件</param>
        /// <param name="value">排序字段</param>
        /// <param name="fun">查询条件<</param>
        /// <returns></returns>
        public IEnumerable <T> BindBoundControl <T>(string ClickedItemName, ToolStripTextBox tstb, ToolStripLabel tsl, Expression <Func <T, bool> > expr, string value) where T : class
        {
            DCCarManagementDataContext dc = new DCCarManagementDataContext();

            try
            {
                pageSize = common.GetInt(PageMaxCount.Replace("条", ""));//每页显示行数
                if (rbool)
                {
                    pageCurrent = 1;    //当前页数从1开始
                }
                if (expr != null)
                {
                    nMax = dc.GetTable <T>().Where <T>(expr).Count();
                }
                else
                {
                    nMax = dc.GetTable <T>().Count();
                }
                pageCount = (nMax / pageSize);    //计算出总页数
                if ((nMax % pageSize) > 0)
                {
                    pageCount++;
                }

                rbool = true;
                if (ClickedItemName != "")
                {
                    itemClicked <T>(ClickedItemName);
                }
                tsl.Text  = " 共 " + pageCount.ToString() + " 页  共 " + nMax.ToString() + " 条";
                tstb.Text = Convert.ToString(pageCurrent);
                return(OrderBy <T>(value, expr));
            }
            catch (Exception ex)
            {
                //  common1.WriteTextLog("分页FenYe.BindBoundControl异常:" + ex.Message);
                return(null);
            }
        }
        /// <summary>
        /// 是否所属项(是否有下级)
        /// </summary>
        /// <returns></returns>
        public static List <Dictionary> GetStateDictionaryOther()
        {
            List <Dictionary> list = new List <Dictionary>();

            using (DCCarManagementDataContext db = new DCCarManagementDataContext())
            {
                Table <Dictionary> ti = db.GetTable <Dictionary>();
                var objTable          = from c in ti
                                        where c.Dictionary_OtherID == 0 && c.Dictionary_ISLower == true
                                        select c;
                list = objTable.ToList <Dictionary>();
            }
            return(list);
        }
        /// <summary>
        /// 字典状态名称
        /// </summary>
        /// <returns></returns>
        public static List <Dictionary> GetStateDictionaryName()
        {
            List <Dictionary> list = new List <Dictionary>();

            using (DCCarManagementDataContext db = new DCCarManagementDataContext())
            {
                Table <Dictionary> ti = db.GetTable <Dictionary>();
                var objTable          = from c in ti
                                        //where c.Dictionary_State == true && c.Dictionary_ISLower == true
                                        select c;
                //select new { c.Dictionary_ID, c.Dictionary_Value };
                list = objTable.ToList <Dictionary>();
            }
            return(list);
        }
Example #6
0
        /// <summary>
        /// 添加一条记录
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="dc"></param>
        /// <param name="tentity"></param>
        public static bool InsertOne <T>(DCCarManagementDataContext dc, T tentity) where T : class
        {
            bool rbool = true;

            try
            {
                var table = dc.GetTable <T>();
                table.InsertOnSubmit(tentity);
                dc.SubmitChanges();
            }
            catch
            {
                rbool = false;
            }
            return(rbool);
        }
Example #7
0
        /// <summary>
        /// 添加多条记录
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="dc"></param>
        /// <param name="tentitys"></param>
        public static bool InsertToMany <T>(DCCarManagementDataContext dc, IEnumerable <T> tentitys) where T : class
        {
            //var table = dc.GetTable<T>();
            //table.InsertAllOnSubmit(tentitys);
            //dc.SubmitChanges();
            bool rbool = true;

            try
            {
                var table = dc.GetTable <T>();
                table.InsertAllOnSubmit(tentitys);
                dc.SubmitChanges();
            }
            catch (ChangeConflictException)
            {
                dc.ChangeConflicts.ResolveAll(RefreshMode.KeepCurrentValues);
                dc.SubmitChanges();
                rbool = false;
            }
            return(rbool);
        }
Example #8
0
        /// <summary>
        /// LINQ更新方法
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="dc"></param>
        /// <param name="fun"></param>
        /// <param name="tentity"></param>
        /// <param name="action"></param>
        public static bool Update <T>(DCCarManagementDataContext dc, Expression <Func <T, bool> > fun, Action <T> action) where T : class
        {
            //var table = dc.GetTable<T>().Single<T>(fun);
            //action(table);
            //dc.SubmitChanges();
            bool rbool = true;

            try
            {
                var table = dc.GetTable <T>().Single <T>(fun);
                action(table);

                dc.SubmitChanges();
            }
            catch (ChangeConflictException)
            {
                dc.ChangeConflicts.ResolveAll(RefreshMode.KeepCurrentValues);
                dc.SubmitChanges();
                rbool = false;
            }
            return(rbool);
        }
Example #9
0
        /// <summary>
        /// 按条件删除多条数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="dc"></param>
        /// <param name="tentitys"></param>
        /// <param name="fun"></param>
        public static bool DeleteToMany <T>(DCCarManagementDataContext dc, Expression <Func <T, bool> > fun) where T : class
        {
            //var table = dc.GetTable<T>();
            //var result = table.Where<T>(fun).AsEnumerable<T>();
            //table.DeleteAllOnSubmit<T>(result);
            //dc.SubmitChanges();
            bool rbool = true;

            try
            {
                var table  = dc.GetTable <T>();
                var result = table.Where <T>(fun).AsEnumerable <T>();
                table.DeleteAllOnSubmit <T>(result);
                dc.SubmitChanges();
            }
            catch (ChangeConflictException)
            {
                dc.ChangeConflicts.ResolveAll(RefreshMode.KeepCurrentValues);
                dc.SubmitChanges();
                rbool = false;
            }
            return(rbool);
        }
        private IEnumerable <T> ApplyOrder <T>(string property, string methodName, Expression <Func <T, bool> > expr1) where T : class
        {
            DCCarManagementDataContext db = new DCCarManagementDataContext();
            Type type = typeof(T);
            ParameterExpression arg  = Expression.Parameter(type, "a");
            PropertyInfo        pi   = type.GetProperty(property);
            Expression          expr = Expression.Property(arg, pi);

            type = pi.PropertyType;
            Type             delegateType = typeof(Func <,>).MakeGenericType(typeof(T), type);
            LambdaExpression lambda       = Expression.Lambda(delegateType, expr, arg);
            object           result       = typeof(Queryable).GetMethods().Single(a => a.Name == methodName && a.IsGenericMethodDefinition && a.GetGenericArguments().Length == 2 && a.GetParameters().Length == 2).MakeGenericMethod(typeof(T), type).Invoke(null, new object[] { db.GetTable <T>(), lambda });

            if (expr1 != null)
            {
                return(((IOrderedQueryable <T>)result).Where <T>(expr1).Skip <T>(nCurrent).Take <T>(pageSize).ToList());
            }
            else
            {
                return(((IOrderedQueryable <T>)result).Skip <T>(nCurrent).Take <T>(pageSize).ToList());
            }
        }
Example #11
0
 /// <summary>
 /// 查询单条 返回实体
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="fun"></param>
 /// <returns></returns>
 public static T Single <T>(DCCarManagementDataContext dc, Expression <Func <T, bool> > fun) where T : class
 {
     return(dc.GetTable <T>().Single <T>(fun));
 }
Example #12
0
 public static IEnumerable <T> Query <T>(DCCarManagementDataContext dc, Action <T> tentity) where T : class
 {
     return(dc.GetTable <T>().AsEnumerable <T>());
 }
Example #13
0
 public static List <T> ListT <T>(DCCarManagementDataContext dc, Expression <Func <T, bool> > fun) where T : class
 {
     return(dc.GetTable <T>().Where <T>(fun).AsEnumerable <T>().ToList());
 }
Example #14
0
 /// <summary>
 /// 按条件查询记录拼接
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="dc"></param>
 /// <param name="fun"></param>
 /// <returns></returns>
 public static IEnumerable <T> Query <T>(DCCarManagementDataContext dc, Expression <Func <T, bool> > expr) where T : class
 {
     return(dc.GetTable <T>().Where <T>(expr).AsEnumerable <T>().ToList());
 }
Example #15
0
 /// <summary>
 /// 查询所有的记录
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="dc"></param>
 /// <returns></returns>
 public static IEnumerable <T> Query <T>(DCCarManagementDataContext dc) where T : class
 {
     return(dc.GetTable <T>().AsEnumerable <T>().ToList());
 }