Я вижу это:
public class MyGenericClass<T> where T:IComparable { }
и у меня есть это:
public class ProductRepository : IRepository<Product> { }
Как бы вы написали что-то подобное?
public class ProductRepository<T> where T : Product : IRepository<Product> {}
После всего этого я подумал, что мог бы просто создать один класс Repository, а затем внедрить в него тип, включая контекст данных. Но мы преследуем простейшую вещь сначала правильно? LOL
Обновление:
Если бы я сделал это, как бы я выбрал, какую сущность использовать в контейнере сущностей (или в контексте)? (Третья строка снизу начинается с возврата _dc.Versions., Который должен был бы как-то переключиться на возврат _dc.T.)
public class Repository<T> : IRepository<T> where T : class
{
# region Constructor
private AdSketchEntities _dc { get; set; } // Data Container (Data Context)
public Repository() : this(new AdSketchEntities()) { }
public Repository(AdSketchEntities myDC)
{ this._dc = myDC;
}
# endregion
public T Add(T entity)
{
_dc.Versions.AddObject(entity);
return _dc.Versions.Where(n => n.custid == entity.custid &&
n.versionid == entity.versionid).SingleOrDefault();
}