在我的应用程序中,我创建了一个带有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;
}
}