ASP.NET MVC 5 应用程序 - 没有 Entity Framework 的存储库模式

ASP.NET MVC 5 application - Repository pattern without Entity Framework

我正在尝试创建一个没有 entity framework 的 ASP.NET MVC 5 应用程序。 我有一些现有的数据库,但不想为此使用 Entity Framework。提出了具有实体、存储库和 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);
    }
}

这里的问题是,我没有为这个控制器创建一个无参数的构造函数。现在我如何将我的存储库上下文传递给这个控制器。我错过了一些步骤,但无法弄清楚。
另外,如果有人知道这种情况的任何可下载示例应用程序,那将有很大帮助。

Dependency injection 就是你的答案。有一些图书馆会为你做这件事。您也可以自己或使用服务定位器进行 poor-mans 注入。

您可以使用 autofac 或 ninject 来协调您的依赖项解析。

这会有所帮助:How do I properly register AutoFac in a basic MVC5.1 website?

我考虑过使用存储库设计模式与我一直在处理的 MVC 5 应用程序一起使用,但不幸的是,它看起来像是对我的 MVC 应用程序的重大返工,基本上我将不得不从头开始重新开始应用。我发现通过保持 Entity Framework 模型完好无损来维护 MVC 应用程序会容易得多,即使这会减慢 MVC 应用程序的速度,我的解决方案是让 MVC 应用程序 运行 在虚拟化服务器中有更多添加计算资源以加速应用程序。当前级别的更多资源。

Entity Framework 模型比使用 Repository 设计模式更容易维护,如果应用程序很慢,因为 EF 模型有许多子模型作为虚拟属性,那没关系,简单的解决方案问题是拥有更强大的服务器 运行 应用程序、更多 RAM、更快 CPU、更多计算资源等

从我的角度来看,使用存储库会为应用程序增加更多的复杂性,并使其更难维护。