using System; using System.Collections.Generic; using System.Linq.Expressions; namespace DeveloperAchievements { public interface IRepository { void Delete(T target) where T : KeyedEntity; T Find(long id) where T : KeyedEntity; T FindByKey(string key) where T : KeyedEntity; T FindBy(Expression> where) where T : KeyedEntity; IEnumerable Query(Expression> where) where T : KeyedEntity; void Save(T target) where T : KeyedEntity; } }