"Animal"というクラスのモデルがあります。
「動物」クラスには、いくつかのプロパティを持っていますが、のは、以下の性質に焦点を当ててみましょう:私は実行して動作するようにCREATEDATEを得ることができ、「動物」クラスではODataプロパティ(内部セッター付き) - UpdateDateのように
- CREATEDATE
- でCreateUser
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime CreateDate { get; set; }
これにより、dのデフォルト値を設定することでデータベースにCreateDateを生成することができます。 atabaseを "GetDate()"とします。
外部の呼び出し元がODataサービスのCreateDateフィールドを "設定"しようとすると、渡されるデータは無視されます。
これは、外部の発信者にとっては「読み取り専用」プロパティにします。
ODataサーバーでCreateUser = System.Threading.Thread.CurrentPrincipal.Identity.Nameを設定する必要がある以外は、CreateUserに似た処理を行う必要があります。
プライベートセットを試すと、ODataサービスはプロパティをまったく公開しません。
公開セットを試すと、外部の発信者がプロパティを変更できます。私は、サーバー側でそれを設定するかどうかはわかりません= System.Threading.Thread.CurrentPrincipal.Identity.Name
内部_CreateUserを設定している「動物」コンストラクタで
。
インターフェイスとコンテキスト保存の変更イベントを使用して、少しクリーンな別の方法が見つかりました。 http://stackoverflow.com/questions/24590911/entity-framework-code-first-datetime-field-update-on-modification – goroth