新增数据
/// <summary>
/// 新增数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public T Add<T>(T t) where T : class, new()
{
dbContext.Entry<T>(t).State = EntityState.Added;
dbContext.SaveChanges();
return t;
}
批量新增数据
/// <summary>
/// 批量新增数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
public int Add<T>(List<T> t) where T : class, new()
{
foreach (var item in t)
{
dbContext.Entry<T>(item).State = EntityState.Added;
}
return dbContext.SaveChanges();
}
修改数据
/// <summary>
/// 修改数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public int Update<T>(T t) where T : class, new()
{
dbContext.Set<T>().Attach(t);
PropertyInfo[] props = t.GetType().GetProperties();
foreach (PropertyInfo prop in props)
{
if (prop.GetValue(t, null) != null)
{
if (prop.GetValue(t, null).ToString() == " ")
dbContext.Entry(t).Property(prop.Name).CurrentValue = null;
dbContext.Entry(t).Property(prop.Name).IsModified = true;
}
}
return dbContext.SaveChanges();
}
删除
/// <summary>
/// 删除
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public int Delete<T>(T t) where T : class, new()
{
dbContext.Entry<T>(t).State= EntityState.Deleted;
return dbContext.SaveChanges();
}
批量删除
/// <summary>
/// 批量删除
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public int Delete<T>(List<T> t) where T : class, new()
{
foreach (var item in t)
{
dbContext.Entry<T>(item).State = EntityState.Deleted;
}
return dbContext.SaveChanges();
}
查询一条数据
/// <summary>
/// 根据条件查询一条数据
/// 先查询再修改必须用这个,否则会报错
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <returns></returns>
public T Find<T>(Expression<Func<T, bool>> predicate) where T : class, new()
{
return dbContext.Set<T>().AsNoTracking().FirstOrDefault(predicate);
}
/// <summary>
/// 根据主键查询数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key">主键,可多个</param>
/// <returns></returns>
public T Find<T>(params object[] key) where T : class, new()
{
return dbContext.Set<T>().Find(key);
}
查询列表同时获取查询数据的总量
/// <summary>
/// 查询列表同时获取查询数据的总量
/// 需要加 .ToList()
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="predicate"></param>
/// <param name="count"></param>
/// <returns></returns>
public IQueryable<T> GetList<T>(Expression<Func<T, bool>> predicate,out int count) where T : class, new()
{
count = dbContext.Set<T>().Where(predicate).Count();
return dbContext.Set<T>().Where(predicate);
}
链接: 下载文件-BaseExp.cs.