Entity Framework データ コンテキストを取得するために同じプロジェクトを参照する Web サイトと Windows サービスがあります。Windows サービスを開始するたびに、Entity Framework はデータベース列の 1 つを NOT NULL から NULL に変更する自動移行を実行します (他の変更は行われません)。その列のプロパティは [必須] とマークされており、Web サイト (モデルのまったく同じ DLL のまったく同じバージョンを指している) は、データベースがその列に対して NOT NULL であるべきであると適切に考えています。
自動移行を無効にしてみましたが、予想どおり、適用する必要のある保留中の変更がデータ モデルにあると表示されたため、サービスがクラッシュしました。
編集もう少し情報を見つけました... プロパティに [Required] 属性と [AllowHtml] 属性の両方があるため、これが発生しているようです。[AllowHtml] 属性を削除したところ、発生しませんでした。したがって、私の質問は次のようになります: 1) [AllowHtml] が [Required] で動作しないことが予期される動作ですか? 2) Web サービスがこのコードを使用している場合にのみこれが発生する可能性はありますか?ウェブサイトはコードを使用していますか? [AllowHtml]を見るとWebサービスは[Required]を完全に無視しているようです。
EF5を使用しています。