Я действительно хотел бы использовать SharpRepository вместе с Ninject, но я не понимаю, как настроить Ninject для совместного использования Entity Framework DbContext между репозиториями.
Я использую Entity Framework версии 5 и Ninject версии 3.
В настоящее время я использую Ef5Repository
в своем исходном коде, но я хочу заменить его на ConfigurationBasedRepository
. Но я не могу понять, как передать (или ввести) EF DbContext
в репозитории.
Пример (текущее состояние):
using SharpRepository.Repository;
public interface IProductRepository : IRepository<Product>
{
}
using SharpRepository.Ef5Repository;
using System.Data.Entity;
// TODO Tightly coupled to Ef5Repository.
public class ProductRepository : Ef5Repository<Product>, IProductRepository
{
// TODO The DbContext has to be injected manually.
public ProductRepository(DbContext context) : base(context)
{
}
// [...]
}
Цель:
using SharpRepository.Repository;
public interface IProductRepository : IRepository<Product>
{
}
public class ProductRepository : ConfigurationBasedRepository<Product, int>, IProductRepository
{
// [...]
}
Я уже прочитал два сообщения в блоге SharpRepository: Начало работы и SharpRepository: Конфигурация, но оба они мне не помогают, поскольку:
- Используемый DIC - это StructureMap, а не Ninject.
- Примеры исходного кода являются неполными (например, использование не объявленных переменных).
Итак, мой вопрос: может ли кто-нибудь предоставить мне пример практического примера исходного кода для достижения цели, описанной выше (общий экземпляр Entity Framework DbContext
между всеми репозиториями, расширяющими ConfigurationBasedRepository
)?