Jak wstrzyknąć DbContext Entity Framework do repozytorium ConfigurationBased w SharpRepository
Naprawdę chciałbym użyćSharpRepository razem zNinject, ale nie rozumiem, jak skonfigurować Ninject, aby współużytkować DbContext Entity Framework między repozytoriami.
Używam Entity Framework w wersji 5 i Ninject w wersji 3.
Obecnie używamEf5Repository
w moim kodzie źródłowym, ale chcę go zastąpićConfigurationBasedRepository
. Ale nie mogę wymyślić, jak przekazać (lub wstrzyknąć) EFDbContext
do repozytoriów.
Przykład (bieżący stan):
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)
{
}
// [...]
}
Cel:
using SharpRepository.Repository;
public interface IProductRepository : IRepository<Product>
{
}
public class ProductRepository : ConfigurationBasedRepository<Product, int>, IProductRepository
{
// [...]
}
Przeczytałem już dwa posty na bloguSharpRepository: Pierwsze kroki iSharpRepository: Konfiguracja, ale obie mi nie pomagają, ponieważ:
Użyty DIC to StructureMap, a nie Ninject.Przykłady kodu źródłowego są niekompletne (np. Użycie nie zadeklarowanych zmiennych).Moje pytanie: Czy ktoś może mi podać przykład kodu źródłowego, aby osiągnąć cel opisany powyżej (dzielenie się jedną ramą EntityDbContext
instancja między wszystkimi repozytoriami rozszerzającymiConfigurationBasedRepository
)?