public class Operation:IDisposable
{
private EFContext ef {
get { return new EFContext(); }
}
/// <summary>
/// 添加一个实体对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
public void Add<T>(T t) where T:class
{
ef.Set<T>().Add(t);
ef.SaveChanges();
}
/// <summary>
/// 释放掉EFContext
/// </summary>
public void Dispose()
{
if (ef != null) {
ef.Dispose();
}
}
/// <summary>
/// 获取实体对象的条数
/// </summary>
/// <typeparam name="T">实体对象类</typeparam>
/// <param name="t">对象实例</param>
/// <returns></returns>
public int Count<T>(T t) where T : class
{
return ef.Set<T>().Count<T>();
}
/// <summary>
/// 获取实体对象的所有集合
/// </summary>
/// <typeparam name="T">实体类</typeparam>
/// <returns></returns>
public IQueryable<T> GetList<T>() where T : class
{
return ef.Set<T>().AsQueryable<T>();
}
/// <summary>
/// 获取实体对象的所有集合
/// </summary>
/// <typeparam name="T">实体类</typeparam>
/// <param name="start">开始</param>
/// <param name="count">行数size</param>
/// <returns></returns>
public IQueryable<T> GetLsit<T>(int start, int count)where T:class
{
return ef.Set<T>().Skip(start).Take(count);
}
/// <summary>
/// 根据条件返回一个唯一的实体对象
/// </summary>
/// <typeparam name="T">实体类</typeparam>
/// <param name="p">表达式</param>
/// <returns></returns>
public T Get<T>(System.Linq.Expressions.Expression<Func<T, bool>> p) where T : class
{
return ef.Set<T>().SingleOrDefault<T>(p);
}
/// <summary>
/// 删除指定的实体对象
/// </summary>
/// <typeparam name="T">实体类</typeparam>
/// <param name="t">删除的实例对象</param>
/// <returns>返回这个实例对象</returns>
public T Delete<T>(T t) where T : class
{
ef.Set<T>().Remove(t);
ef.SaveChanges();
return t;
}
/// <summary>
/// 更新一个实体对象
/// </summary>
/// <typeparam name="T">实体类</typeparam>
/// <param name="t">更新的实例对象</param>
/// <returns>返回这个实例对象</returns>
public T UpDate<T>(T t) where T : class
{
ef.Entry<T>(t).State = System.Data.Entity.EntityState.Detached;
ef.SaveChanges();
return t;
}
}