EFフレームワーク実装データの添削・改ページ・ソートを汎用クラス(パッケージ汎用EFデータ操作クラス)にカプセル化
2784 ワード
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