2012-01-07 6 views
3

Entity Frameworkの使用CodeFirstでは、作成されたdatetime列を作成して、その表にレコードが挿入されるたびに現行のタイムスタンプが移入されます。生成されたタイムスタンプの行が更新されますか? Railsはこれをデフォルトで行い、EFで生成されたデータベースにもこれがあると期待していましたが、そうではありません。データアノテーションでこれを行うことができるのでしょうか?もしそうなら、どうですか?EF CodeFirst:Railsスタイルの作成および変更された列

ありがとうございます!

答えて

4

EFではサポートされていません。 EFは自動的にこれらの列を作成しません。あなたはいずれかの方法でそれ自身を行う必要があります。

  • は、あなたがこれらの値を維持したいすべてのエンティティでCreatedModified特性を有しています。また、アプリケーションでこれらの列を手動で維持する必要があります(common approachSaveChangesをオーバーライドし、それに応じて値を設定します)。
  • これらの値がマップされていなくても(アプリケーションで使用することは決して想定されておらず、データベースのロジックに満足している場合)、custom database initializerを作成して、カスタムSQLを実行してテーブルを変更し、 、Created列のデフォルト制約、Modified列の更新トリガー。
+0

Pefect!ありがとうございました!しかし、明確にするために、データ注釈でこれを達成する方法はありませんか? –

+1

データアノテーションはこれらのプロパティの値を維持するためのロジックを追加しないため、現在EFではカスタムアノテーションを追加できません。 –

関連する問題