在我的应用程序中,我创建了一个带有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)的类型。 ProductEntitiesObjectContext继承。

为了实现抽象,我总是使用接口,但我不知道是否可以使用ObjectContext,因为它是一个类。

有人知道我的目标是否可以实现?

最佳答案

像这样吗

public class ProductRepository<T> : IProductRepository where T: new()
{
     T _productEntitiesContext;

     public productRepository()
     {
         _productEntitiesContext = new T();
     }

     public productRepository(T productContext)
     {
         _productEntitiesContext = productContext;
     }
}

10-08 09:15