ASP.NET MVC 5应用程序-不带实体框架的存储库模式

本文关键字:框架 实体 存储 模式 MVC NET 应用程序 ASP | 更新日期: 2023-09-27 18:20:11

我正在尝试创建一个没有实体框架的ASP.NET MVC 5应用程序。我有一些现有的数据库,但不想使用实体框架。提出了具有实体、存储库和DAL的简单整洁的体系结构。我创建了一个控制器,将Repository上下文传递给它。

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);
    }
}

这里的问题是,我还没有为这个控制器创建一个无参数的控制器。现在我如何将我的存储库上下文传递给这个控制器。我错过了一些步骤,但没能搞清楚
此外,如果有人知道这种场景的任何可下载的示例应用程序,这将是非常有帮助的。

ASP.NET MVC 5应用程序-不带实体框架的存储库模式

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

您可以使用autofac或ninject来协调您的依赖关系解决方案。

这将有所帮助:如何在基本的MVC5.1网站中正确注册AutoFac?

我曾考虑过使用Repository设计模式来与我一直在开发的MVC 5应用程序一起使用,但不幸的是,这看起来像是对我的MVC应用程序的重大返工,基本上我必须从头开始使用这个应用程序。我发现,通过保持实体框架模型不变来维护MVC应用程序会容易得多,尽管这会减慢MVC应用程序的速度,但我的解决方案是让MVC应用程序在虚拟化服务器中运行,并添加更多的计算资源来加快应用程序的运行速度。从目前的水平增加更多的资源。

实体框架模型比使用Repository设计模式更容易维护,如果应用程序很慢,因为EF模型有很多子模型作为虚拟属性,也就是说,问题的简单解决方案是有一个更强大的服务器来运行应用程序、更多的RAM、更快的CPU、更多的计算资源等。

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