Arhn - архитектура программирования

Приложение ASP.NET MVC 5 — шаблон репозитория без Entity Framework

Я пытаюсь создать приложение ASP.NET MVC 5 без инфраструктуры сущностей. У меня есть существующая база данных, но я не хочу использовать для этого Entity Framework. Придумал простую и незагроможденную архитектуру с Entities, Repository и DAL. Я создал контроллер, передающий ему контекст репозитория.

public class EmployeeController : Controller
{
    private readonly IEmployeeRespository repository;

    public EmployeeController(IEmployeeRespository _repository)
    {
        repository = _repository;
    }

    // GET: Employee
    public ActionResult Index()
    {
        IEnumerable<Employee> Employees = repository.GetEmployees();
        return View(Employees);
    }
}

Проблема в том, что я не создал конструктор без параметров для этого контроллера. Теперь, как мне передать контекст репозитория этому контроллеру. Я пропустил какой-то шаг, но не могу понять.
Кроме того, если кто-нибудь знает какой-либо загружаемый образец приложения для такого сценария, это будет очень полезно.


  • Ваш код выглядит правильно и определенно не касается EF. 31.10.2015
  • может быть, если вы включите сообщение об ошибке, это поможет .... да, как сказал ДартВейдер, вы ищете какой-то DI, чтобы делать то, что вы хотите. 31.10.2015
  • @Seabizkit да, это была проблема. я не реализовал DI. Использовал для этого единство и теперь работал нормально. 31.10.2015

Ответы:


1

Dependency injection это ваш ответ. есть несколько библиотек, которые сделают это за вас. Вы также можете сделать poor-mans инъекцию самостоятельно или с помощью службы поиска.

Вы можете использовать autofac или ninject, которые организуют ваше разрешение зависимостей.

Это поможет: Как мне правильно зарегистрировать AutoFac на базовом веб-сайте MVC5.1?

31.10.2015
  • Спасибо. Я упускал только это. Я использовал Unity для внедрения зависимостей. И работал ровно. 31.10.2015

  • 2

    Я рассмотрел использование шаблона проектирования репозитория для использования с приложением MVC 5, над которым я работал, но, к сожалению, это выглядело как серьезная переработка моего приложения MVC, в основном мне пришлось бы снова начинать с нуля с этим приложением. Я обнаружил, что было бы намного проще поддерживать приложение MVC, оставив модели Entity Framework нетронутыми, хотя это и замедляет приложение MVC. заявление. больше ресурсов по сравнению с текущим уровнем.

    Модели Entity Framework гораздо проще поддерживать, чем использование шаблона проектирования репозитория, если приложение работает медленно из-за того, что модели EF имеют много подмоделей в качестве виртуальных свойств, это нормально, простое решение проблемы — иметь более мощный сервер. запуск приложения, больше оперативной памяти, более быстрый процессор, больше вычислительных ресурсов и т. д.

    С моей точки зрения, использование репозитория значительно усложняет приложение и усложняет его обслуживание.

    05.10.2018
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..