【问题标题】:ASP.NET mvc scaffolding with existing repository and mapping POCO to viewmodels带有现有存储库的 ASP.NET mvc 脚手架并将 POCO 映射到视图模型
【发布时间】:2013-07-19 18:58:33
【问题描述】:

我有一个包含三个项目的 asp.net mvc 解决方案

  • 用户界面 ASP.NET MVC
  • POCO My Domain POCO 对象
  • Repository 使用实体框架和 t4 生成上下文和 POCO 课程

我希望我的 UI 项目使用 ViewModels 而不是 POCO 类。

我需要分别为 UI 和 Repository 做脚手架(我从存储库脚手架开始,然后自定义一些代码,然后我将脚手架 uicontrollers 视图视图模型)

我在存储库项目中做存储库脚手架,如下所示: 脚手架存储库 -ModelType POCO.User -DbContextType Context 这就像一个魅力

但是在我使用控制器脚手架时的默认 mvcscaffolding 模板中: 脚手架控制器-ModelType POCO.User -ControllerName UsersController -DbContextType Repository.Context -Repository

  • 它会检测到用户已经在上下文中,所以会跳过它(这很好)。
  • 它将使用 POCO.User 作为模型构建视图(这不是我想要的,我希望它生成 ViewModel 类并使用它)
  • 它将生成存储库(这也不好,因为我已经在存储库项目中有我的存储库)
  • 它将使用创建的存储库搭建控制器并将 POCO 发送到视图(也不好)

所以我想做这样的事情 脚手架控制器 -ModelType POCO.User -ControllerName UsersController -DbContextType Repository.Context -RepositoryType Repository.UserRepository -GenerateViewModel

这将跳过存储库创建,但在控制器中使用它,从 poco 生成 ViewModel 并使用 automapper 制作映射,并在视图中使用 viewmodel。

感谢任何帮助。 谢谢

【问题讨论】:

    标签: repository-pattern t4 asp.net-mvc-scaffolding asp.net-mvc-viewmodel t4scaffolding


    【解决方案1】:

    您要求做的事情是有道理的,但不是开箱即用的。您可以使用此命令覆盖 T4 模板

    > scaffold customTemplate Controller 
    

    但要跨项目工作,您需要深入了解 powershell 并创建自己的脚手架

    > scaffold customScaffolder ViewModel
    

    请参阅Steven Sanderson's blog posts 了解更多信息。另请参阅此blog post 以获取在 T4 模板中生成 DTO 或 POCO 类的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多