【问题标题】:Best practice for editing MVC3 auto generated code?编辑 MVC3 自动生成代码的最佳实践?
【发布时间】:2012-08-24 02:14:48
【问题描述】:

很抱歉,如果这是在错误的地方,但我认为是。

所以我在创建 MVC3 互联网应用程序时使用了数据库优先方法,并为我生成了我的类。我是 MVC3 的新手,对 c# 和 Visual Studio 也很陌生,尽管我确实有一点经验。

自动生成的代码警告编辑可能会导致意外结果,如果重新生成代码,更改将被删除。据我了解,这意味着更改数据库、重新运行 tt 文件或更新模型。

但是可以编辑它,并在我需要重新生成时跟踪更改,或者有更好的方法吗?

感谢您的帮助。

【问题讨论】:

    标签: c# asp.net-mvc-3 visual-studio-2012 ef-database-first


    【解决方案1】:

    生成的类应该是partial 类,因此您应该能够通过使用相同的命名空间和名称创建自己的partial 类来从外部管理增强功能。

    【讨论】:

    • +1 "partial" 关键字是正确的方式,如何同时管理自动生成和自定义代码。
    • 谢谢,将阅读部分类以及如何将它们组合在一起。当它允许我时会接受。 :)
    • 因此,如果我在名为 pages.cs 的类文件中有一个公共的“部分类 pagetest”,并且自动生成的类页面称为 news_page,但也称为“部分类 pagetest”,这会起作用吗?它们都在模型中,并且都在同一个命名空间 project.Models 下。但是,自动生成的部分类位于 .edmx 文件中。部分类的另一半也需要移到那里吗?
    • 只要生成的类和您的自定义类共享相同的namespace 和名称。在您的示例中,您希望将自定义类命名为 news_page
    【解决方案2】:

    在模型优先的方法中,在EDMX 文件上使用默认代码生成策略,为您生成的类DbContextEntity 类都是部分类。

    因此,根据您的更改类型,如果您想扩展这些生成的类,只需创建一个新的分部类,其中包含您的自定义代码。您的部分内容不会被代码生成器覆盖。

    【讨论】:

      猜你喜欢
      • 2010-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-31
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      相关资源
      最近更新 更多