/// <summary>
/// 新增一个实体
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public virtual int AddEntity(T entity)
{
dbContext.Entry<T>(entity).State = System.Data.EntityState.Added;
return dbContext.SaveChanges();
}
/// <summary>
/// 删除一个实体
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public virtual int DeleteEntity(T entity)
{
dbContext.Entry<T>(entity).State = System.Data.EntityState.Deleted;
return dbContext.SaveChanges();
}
/// <summary>
/// 修改一个实体
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public virtual int UpdateEntity(T entity)
{
dbContext.Entry<T>(entity).State = System.Data.EntityState.Modified;
return dbContext.SaveChanges();
}
/// <summary>
/// 批量新增实体
/// </summary>
/// <param name="entities"></param>
/// <returns></returns>
public virtual int AddEntities(params T[] entities)
{
int result = 0;
for (int i = 0; i < entities.Count(); i++)
{
if (entities[i] == null)
continue;
dbContext.Entry<T>(entities[i]).State = System.Data.EntityState.Added;
if (i != 0 && i % 20 == 0)
{
result += dbContext.SaveChanges();
}
}
if (entities.Count() > 0)
result += dbContext.SaveChanges();
return result;
}
/// <summary>
/// 批量删除实体
/// </summary>
/// <param name="where"></param>
/// <returns></returns>
public virtual int DeleteEntities(Expression<Func<T, bool>> where)
{
var temp = dbContext.Set<T>().Where(where);
foreach (var item in temp)
{
dbContext.Entry<T>(item).State = System.Data.EntityState.Deleted;
}
return dbContext.SaveChanges();
}
/// <summary>
/// 按条件查询
/// </summary>
/// <param name="where"></param>
/// <returns></returns>
public virtual IQueryable<T> LoadEntities(Expression<Func<T, bool>> where)
{
var temp = dbContext.Set<T>().Where(where);
return temp;
}
/// <summary>
/// 按条件查询,排序
/// </summary>
/// <typeparam name="S"><peparam>
/// <param name="where"></param>
/// <param name="orderBy"></param>
/// <param name="isAsc"></param>
/// <returns></returns>
public virtual IQueryable<T> LoadEntities<S>(Expression<Func<T, bool>> where, Expression<Func<T, S>> orderBy, bool isAsc)
{
var temp = dbContext.Set<T>().Where(where);
if (isAsc)
temp = temp.OrderBy<T, S>(orderBy);
else
temp = temp.OrderByDescending<T, S>(orderBy);
return temp;
}
/// <summary>
/// 按条件查询,分页
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowCount"></param>
/// <param name="where"></param>
/// <returns></returns>
public virtual IQueryable<T> LoadPageEntities(int pageIndex, int pageSize, out int rowCount, Expression<Func<T, bool>> where)
{
var temp=dbContext.Set<T>().Where(where);
rowCount = temp.Count();
temp = temp.Skip(pageSize * (pageIndex - 1)).Take(pageSize);
return temp;
}
/// <summary>
/// 按条件查询,分页,排序
/// </summary>
/// <typeparam name="S"><peparam>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowCount"></param>
/// <param name="where"></param>
/// <param name="orderBy"></param>
/// <param name="isAsc"></param>
/// <returns></returns>
public virtual IQueryable<T> LoadPageEntities<S>(int pageIndex, int pageSize, out int rowCount, Expression<Func<T, bool>> where, Expression<Func<T, S>> orderBy, bool isAsc)
{
var temp = dbContext.Set<T>().Where(where);
rowCount = temp.Count();
if (isAsc)
temp = temp.OrderBy<T, S>(orderBy).Skip(pageSize * (pageIndex - 1)).Take(pageSize);
else
temp = temp.OrderByDescending<T, S>(orderBy).Skip(pageSize * (pageIndex - 1)).Take(pageSize);
return temp;
}
MVC 增删改查
最新推荐文章于 2023-07-04 13:15:55 发布