I have the following domain object:
public class DomainObject<T,TRepo>
where T : DomainObject<T>
where TRepo : IRepository<T>
{
public static TRepo Repository { get;private set; }
}
Repository Interface:
public interface IRepository<T>
{
void Save(T domainObject);
}
Implementation 2:
public class User : DomainObject<User,MyRepository>
{
public string Name { get;private set;}
}
public class MyRepository : IRepository<User>
{
public List<User> UsersWithNameBob()
{
}
}
So, adding another method that is not inside the IRepository.
I want to use the repository as an IRepository, while any type can be above it.
A small bonus: I write this for small systems with very few domain objects. I do not want to create anything that uses IoC, but rather something that is easy and simple to consume.
thanks
source
share