【问题标题】:Updating existing classes with new EDMX model使用新的 EDMX 模型更新现有类
【发布时间】:2011-09-27 22:19:17
【问题描述】:

我正在使用现有的 EDMX 模型,我必须在其中向 DB 添加一个新列。我已经从 DB 更新了模型,现在我可以在模型中看到新列。但是,我必须使用新添加的列更新 Classes 并添加 get;放;方法等。是否有一种自动方法可以通过 Visual Studio 更新它,但仍保留现有代码并添加新属性?这是我第一次使用 EDF,我很难理解它。

在此先感谢

【问题讨论】:

  • 如果您对生成的实体有额外的逻辑,您应该将它们放在一个部分类中,这样如果您必须重新生成实体,您不会丢失任何东西。当您在数据库中添加/删除列时,您应该能够从 EDMX 中删除实体并重新删除表以重新生成实体。
  • 你是如何生成你的类的?如果您正在编写自己的 POCO 实体,请尝试使用 T4 模板生成代码,这样,无论何时更改模型,您都可以重新生成类。就像@BalaR 所说,使用部分类来增加功能。

标签: c# asp.net entity-framework


【解决方案1】:

您是否使用 ADO.NET DbContext Generator 为您创建模型类?我就是这样做的。如果您这样做,一般来说,如果您将新列添加到相应的数据库表,这些类将正确重新创建。与生成的某些代码相关的任何代码都放在单独的视图模型或其他定制模型中,这些模型在重新生成时不会被覆盖。然后,如果数据库发生变化,我的视图模型就会有一些小修改。

【讨论】:

  • 系统使用POCO实体。我想我将不得不使用@AJC 描述的 T4 模板重新生成。我确实尝试使用 DBContext Generator 进行更新。但是,代码生成的代码是高度定制的。因此,将逻辑分离到部分类或模型将是解决方案中的大量重新设计。我期待它是一个简单的更新!
  • @Chin:除非有人手动更改自动生成的代码,否则这很简单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-25
  • 2023-04-01
  • 1970-01-01
  • 2016-02-08
  • 2015-08-14
  • 1970-01-01
  • 2019-12-28
相关资源
最近更新 更多