【问题标题】:Any way to retain property attributes on the entity classes when updating the model from the database using the designer使用设计器从数据库更新模型时保留实体类属性的任何方式
【发布时间】:2012-07-01 11:37:18
【问题描述】:

通过 ObjectContext 使用 ASP.NET 4 和实体框架 4.3.1。

每当我从数据库更新/刷新模型时,任何属性属性集(即[AllowHtml])在一个或多个实体类中的属性上都会消失,因为该过程会完全重建它看起来的实体模型的所有类。

此外,当尝试通过设计器添加简单的标量属性时,表映射不是自动创建的,我无法创建它们,让我唯一的选择是首先将此属性添加到底层数据库,然后运行更新/刷新模型向导。是否可以添加表映射?如果不是,为什么这个功能甚至包含在设计器中。

【问题讨论】:

    标签: asp.net entity-framework entity-framework-4 objectcontext


    【解决方案1】:

    自动生成代码的第一条规则:你不能修改它,因为每次设计器再次运行自动生成时,你的修改都会丢失 - 自动生成无法检测到你的更改。它负责为您当前的模型生成正确的代码,因此它将始终从头开始创建所有代码并删除旧代码。

    表映射不会自动创建。 Designer 支持两种建模方法。

    • 数据库优先 - 您修改数据库并从数据库运行更新模型以在设计器中获取修改和相关映射
    • 模型优先 - 您修改模型并运行从模型生成数据库以获取用于创建数据库的 SQL 脚本

    您应该只使用一种方法。

    如果你想用属性标记实体,你不能使用自动生成的代码。您必须手动创建和维护您的类。在验证(带有数据注释)的情况下,您可以改用buddy classes,但这可能不是您的情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-28
      • 2011-04-26
      • 2017-08-26
      • 1970-01-01
      相关资源
      最近更新 更多