我现在正在使用Entity Framework 4.3 DbContext来生成数据库实体,我的问题是当我更改数据库时,如何确保自动生成的代码更新? EF存储数据库规则的位置,例如允许从No到Yes的null。当我使用 .EDMX 文件中的从数据库更新模型函数时,似乎不会更新表的allow null规则。我该如何解决数据库更改问题。存储所有这些规则的代码在哪里。
错误消息:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
但是当我删除所有EF自动生成的文件并重新生成它时,似乎规则已更新。但我认为这不是开发期间解决问题的好方法。
答案 0 :(得分:1)
当我使用.EDMX文件中的“从数据库更新模型”功能时,它 似乎没有更新表的allow null规则。
这是正确的行为。 EDMX文件有三个部分:
当您使用数据库更新时,设计人员将完全替换数据库定义,并将新表或列添加到映射和类定义。它永远不会尝试删除或更改任何东西。原因是类定义是可定制的。如果您进行了更改,则不希望设计师触摸它们。从数据库更新只有实际状态 - 它不知道您所做的更改以及修改数据库导致的更改,因此它只是使用更好的方式 - 不要修改任何内容并让您纠正不一致。