我有一个网站和一个 Windows 服务,它们都引用同一个项目来获取实体框架数据上下文。每次我启动 Windows 服务时,Entity Framework 都会运行自动迁移,将其中一个数据库列从 NOT NULL 更改为 NULL(不进行其他更改)。该列的属性被标记为 [Required],并且网站(指向其模型的完全相同 DLL 的完全相同版本)正确地认为该列的数据库应该为 NOT NULL。
我尝试禁用自动迁移,正如预期的那样,服务随后崩溃,因为它说数据模型有待应用的更改。
编辑我发现了更多信息......似乎正在发生这种情况,因为我在属性上同时具有 [Required] 和 [AllowHtml] 属性。当我删除 [AllowHtml] 属性时,它没有发生。因此,我的问题归结为:1) [AllowHtml] 是否可以与 [Required] 一起使用,以及 2) 这怎么可能仅在 Web 服务使用此代码时发生,而不是在网站使用代码?似乎 Web 服务在看到 [AllowHtml] 时完全忽略了 [Required]。
我正在使用 EF 5。