I think you can use interface IRepository and create separate repository for each type.