How-to injetar o Entity Framework DbContext no ConfigurationBasedRepository de SharpRepository
Eu realmente gostaria de usarSharpRepository junto comNinject, mas eu não entendo como configurar o Ninject para compartilhar o Entity Framework DbContext entre os repositórios.
Estou usando o Entity Framework versão 5 e o Ninject versão 3.
Atualmente estou usandoEf5Repository
no meu código-fonte, mas eu quero substituí-lo comConfigurationBasedRepository
. Mas eu não consigo descobrir como passar (ou injetar) o EFDbContext
para os repositórios.
Exemplo (estado atual):
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)
{
}
// [...]
}
Objetivo:
using SharpRepository.Repository;
public interface IProductRepository : IRepository<Product>
{
}
public class ProductRepository : ConfigurationBasedRepository<Product, int>, IProductRepository
{
// [...]
}
Eu já li os dois postsSharpRepository: Primeiros passos eSharpRepository: configuração, mas ambos não me ajudam, já que:
O DIC usado é StructureMap, não Ninject.Os exemplos de código-fonte estão incompletos (por exemplo, uso de variáveis não declaradas).Então, minha pergunta: alguém pode me fornecer algum exemplo de código-fonte para alcançar a meta descrita acima (compartilhando um Entity FrameworkDbContext
instância entre todos os repositórios que se estendemConfigurationBasedRepository
)