EFフレームワーク実装データの添削・改ページ・ソートを汎用クラス(パッケージ汎用EFデータ操作クラス)にカプセル化


  public class BaseDal where T:class,new()
    {
        //    
        Entities Db = new Entities();
        //**********

        /// 
        ///  
        /// 
        /// 
        /// 
        public T AddEntity(T entity)
        {
            Db.Set().Add(entity);
            Db.SaveChanges();
            return entity;
        }

        /// 
        ///  
        /// 
        /// 
        /// 
        public bool DeleteEntity(T entity)
        {
            Db.Entry(entity).State = System.Data.Entity.EntityState.Deleted;
            return Db.SaveChanges() > 0;
            
        }

        /// 
        ///  
        /// 
        /// 
        /// 
        public bool EditEntity(T entity)
        {
            Db.Entry(entity).State = System.Data.Entity.EntityState.Modified;
            return Db.SaveChanges() > 0;
            
        }

        /// 
        ///  
        /// 
        /// System.Linq.Expressions.Expression> (lambda ) 
        /// 
        public IQueryable LoadEntities(Expression> whereLambda)
        {
            return Db.Set().Where(whereLambda);
        }

        /// 
        ///  
        /// 
        ///  ( )
        ///  
        ///  
        ///  
        ///  
        ///  
        ///  true 
        /// 
        public IQueryable LoadPageEntities(int pageIndex, int pageSize, out int totalCount, Expression> whereLambda, Expression> orderbyLambda, bool isAsc)
        {
            var temp = Db.Set().Where(whereLambda);
            totalCount = temp.Count();
            if (isAsc)//true 
            {
                temp = temp.OrderBy(orderbyLambda).Skip((pageIndex - 1) * pageSize).Take(pageSize);
            }
            else
            {
                temp = temp.OrderBy(orderbyLambda).Skip((pageIndex - 1) * pageSize).Take(pageSize);
            }
            return temp;
        }
    }

以上のコードは、開発中に生成されたエンティティオブジェクトであるEntityが一意でないという問題、すなわち複数のオブジェクトを生成すると操作エラーが発生する可能性がありますので、スレッド内のオブジェクトの一意を実現する問題を考慮して、次のブログで実現します.
https://blog.csdn.net/qq_40564078/article/details/103112292