У меня есть это:
public class DbContext : System.Data.Entity.DbContext, IDbContext
{
}
Моя конфигурация Ninject:
public override void Load()
{
Bind<IDbContext>().To<DbContext>().InRequestScope().WithConstructorArgument("connectionString", ConfigurationManager.AppSettings["DefaultConnectionString"]);
}
Итак, как мне получить тот же экземпляр DbContext
в другом классе, например:
public class ExampleClass()
{
...
public ExampleClass(DbContext myDbContextDependency)
{
...
}
}
Обновление 1:
IDbContext
- это мой шаблон UnitOfWork , он живет в моем доменном слое :
public interface IDbContext
{
void SaveChanges();
}
И мне нужно DbContext
для использования в моем BaseRepository:
public abstract class BaseRepository<TEntity> : IBaseRepository<TEntity> where TEntity : Entity
{
...
//I'm using DbContext here:
protected BaseRepository()
{
this.DbSet = DbContext.Set(typeof(TEntity));
}
//and here:
public virtual void Edit(TEntity entity)
{
this.DbContext.Entry(entity).State = EntityState.Modified;
}
}