namespace LOC.Core.Data { using System; using System.Data.Entity; using System.Linq; using System.Linq.Expressions; public interface IRepository : IDisposable { TEntity Add(TEntity entity) where TEntity : class; bool Any(Expression> predicate) where TEntity : class; bool Any() where TEntity : class; void CommitChanges(); void Delete(TEntity entity) where TEntity : class; void Edit(TEntity entity) where TEntity : class; void Attach(TEntity entity) where TEntity : class; IQueryable GetAll() where TEntity : class; TEntity GetByKeyValues(params object[] keyValues) where TEntity : class; IQueryable Where(Expression> predicate) where TEntity : class; DbContext Context { get; } } }