1

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

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

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

4

1 回答 1

1

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

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

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

您应该只使用一种方法。

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

于 2012-07-01T12:06:14.770 回答