MVC3 EF Единица работы + Универсальный репозиторий + Ninject

Я новичок в MVC3 и следую замечательным учебникам на веб-сайте asp.net. Однако я не могу полностью понять, как использовать шаблоны единиц работы и универсального репозитория с Ninject. Я использовал этот учебник в качестве отправной точки:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net- MVC-приложения

Без использования интерфейсов я знаю, что могу реализовать это так:

Общий репозиторий:

public class GenericRepository<TEntity> : IGenericRepository<TEntity>
                                          where TEntity : class
{
    internal MyContext context;
    internal DbSet<TEntity> dbSet;

    public GenericRepository(MyContext context)
    {
        this.context = context;
        this.dbSet = context.Set<TEntity>();
    }
}

Единица работы:

private MyContext context = new MyContext();
private GenericRepository<Student> studentRepository;
private GenericRepository<Course> courseRepository;

public GenericRepository<Student> StudentRepository
{
    if (this.studentRepository == null)
    {
        this.studentRepository = new GenericRepository<Student>(context);
    }
    return studentRepository;
}

public GenericRepository<Course> CourseRepository
{
    if (this.courseRepository == null)
    {
        this.courseRepository = new GenericRepository<Course>(context);
    }
    return courseRepository;
}

Эта настройка позволяет мне передавать один и тот же контекст во все репозитории, а затем вызывать одну функцию Save () для фиксации изменений.

Я знаю, что могу использовать интерфейсIGenericRepository<TEntity> и конкретная реализацияGenericRepository<TEntity> а затем свяжите их, используя Ninject:

kernel.Bind(typeof(IGenericRepository<>)).To(typeof(GenericRepository<>));

Но как бы я настроить моиIUnitOfWork а такжеUnitOfWork убедиться, что все мои репозитории имеют общий контекст базы данных? Я вообще делаю это правильно с самого начала? Я искал вокруг, но все, что мне кажется, это учебные пособия, в которых используются только общие репозитории без единицы работы.

Ответы на вопрос(1)

Ваш ответ на вопрос