在我的应用程序中,我创建了一个带有Repository类的DAL。存储库使用一组EF类作为数据上下文。
我想创建一个抽象,以便能够在同一个存储库中使用多个Data Context。我使用以下代码初始化上下文(ProductEntities
是EF上下文):
public class ProductRepository : IProductRepository
{
?type? _productEntitiesContext;
public productRepository()
{
_productEntitiesContext = new ProductEntities();
}
public productRepository(?type? productContext)
{
_productEntitiesContext = productContext;
}
}
但是我不知道
_productEntitiesContext
(和productContext
)的类型。 ProductEntities
从ObjectContext
继承。为了实现抽象,我总是使用接口,但我不知道是否可以使用
ObjectContext
,因为它是一个类。有人知道我的目标是否可以实现?
最佳答案
像这样吗
public class ProductRepository<T> : IProductRepository where T: new()
{
T _productEntitiesContext;
public productRepository()
{
_productEntitiesContext = new T();
}
public productRepository(T productContext)
{
_productEntitiesContext = productContext;
}
}