【问题标题】:ASP.NET MVC 5 application - Repository pattern without Entity FrameworkASP.NET MVC 5 应用程序 - 没有实体框架的存储库模式
【发布时间】:2015-10-31 08:09:33
【问题描述】:

我正在尝试创建一个没有实体框架的 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);
    }
}

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

【问题讨论】:

  • 你的代码看起来是正确的,而且绝对不是关于 EF 的。
  • 也许如果您包含一条错误消息会有所帮助....是的,正如 DarthVader 所说,您正在寻找某种 DI 来做您想做的事情。
  • @Seabizkit 是的,这就是问题所在。我没有实施 DI。使用统一,现在工作正常。

标签: c# asp.net-mvc repository-pattern


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢。我错过了这个。我使用 Unity 进行依赖注入。并且运行顺利。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-25
    • 2016-09-02
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多