【问题标题】:MVC3 & EF. Interface for TDDMVC3 和 EF。 TDD 接口
【发布时间】:2011-09-26 10:51:16
【问题描述】:

谁能解释一下:

  1. 我正在使用 MVC3/C#/Razor 构建项目以习惯使用 MVC。
  2. 我正在使用内置帐户控制器。
  3. 我将帐户数据存储在本地 SQL 数据库中,使用 Entity Framework 进行连接。
    如何轻松生成 EF 接口?

  4. 到目前为止,我使用的插件来自:http://blog.johanneshoppe.de/2010/10/walkthrough-ado-net-unit-testable-repository-generator/#step1

这使我可以为已创建的实体提供接口。

但是,我知道我必须更改我的 HomeController 参数以接受真实存储库或假存储库进行测试。

我完全迷路了!

【问题讨论】:

  • 您是否理清了如何让控制器使用无参数构造函数?

标签: c# asp.net-mvc entity-framework razor tdd


【解决方案1】:

看看这些。他们将帮助您并帮助您入门:

http://www.asp.net/entity-framework/tutorials/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

http://msdn.microsoft.com/en-us/library/gg416511(VS.98).aspx

对于依赖注入,您可以按照以下步骤操作:

Install-Package Ninject.MVC3 与您的 ASP.NET MVC 3 项目一起使用 nuget(如果您的应用程序在版本 3 上)。这基本上可以解决所有问题。

然后在您的控制器上添加以下内容:

    private IMyModelRepository _myrepo;

    public HomeController(IMyModelRepository myrepo)
    {
        _myrepo = myrepo;
    }

转到 App_Start 文件夹内的 NinjectMVC3.cs 文件,并将以下代码添加到 RegisterServices 方法内:

    private static void RegisterServices(IKernel kernel) {

        kernel.Bind<IMyModelRepository>().To<MyModelRepository >();

    }   

启动您的应用程序,您应该可以启动并运行。

【讨论】:

  • 谢谢,很有用!最后我用了 ninject 以外的东西,但是基础是一样的。
  • 我会使用存储库模式,就像他们在示例中所做的那样。
  • 对于包含帐户控制器的实体模型来说,实现存储库模式的最简单方法是什么?我可以手动创建它,但是对于帐户控制器创建的所有类都需要很长时间
  • @RawryLions 好吧,有一个名为 MvcScaffolding nuget.org/List/Packages/MvcScaffolding 的 nuget 包可以自动执行基本部分。这是给你的好视频channel9.msdn.com/Events/MIX/MIX11/FRM13 但我不太喜欢这个过程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-26
  • 1970-01-01
  • 2011-12-02
  • 1970-01-01
  • 2013-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多