使用设计器从数据库更新模型时,可以在实体类上保留属性属性的任何方法

时间:2012-07-01 11:37:18

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

通过ObjectContext使用ASP.NET 4和Entity framework 4.3.1。

无论何时我从数据库更新/刷新模型,在一个或多个实体类中的属性上设置的任何属性属性即[AllowHtml]都将消失,因为该过程完全重建了它看起来的实体模型的所有类。 / p>

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

1 个答案:

答案 0 :(得分:1)

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

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

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

您应该只使用一种方法。

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