using System;
using System.Linq;
using System.Linq.Expressions;

namespace HeuristicLab.Services.Optimization.Billing.DAL {

  public interface IGenericDao<T, ID> {
    T FindById(ID id);
    IQueryable<T> FindBy(Expression<Func<T, bool>> predicate);
    IQueryable<T> FindAll();
    void InsertOrUpdate(T entity);
    void Delete(T entity);
    void Commit();
  }
}