sql >> データベース >  >> RDS >> Sqlserver

Entity Framework/SQL2008 - エンティティの LastModified フィールドを自動的に更新する方法は?

    私はパーティーに少し遅れていることを知っていますが、私が取り組んでいるプロジェクトのためにこれを解決したので、私の解決策を共有したいと思いました.

    まず、ソリューションをより再利用できるようにするために、タイムスタンプ プロパティを持つ基本クラスを作成しました。

    public class EntityBase{ public DateTime? CreatedDate { 取得;設定;パブリック日時? LastModifiedDate {get;設定; }}  

    次に、DbContext の SaveChanges メソッドをオーバーライドしました:

    public class MyContext :DbContext{ public override int SaveChanges() { ObjectContext context =((IObjectContextAdapter)this).ObjectContext; // EntityBase IEnumerable objectStateEntries =from e in context.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified) where e.IsRelationship ==false &&e.Entity から継承する追加/変更されたすべてのエンティティを検索します。 =null &&typeof(EntityBase).IsAssignableFrom(e.Entity.GetType()) e を選択します。 var currentTime =DateTime.Now; foreach (objectStateEntries の var エントリ) { var entityBase =entry.Entity as EntityBase; if (entry.State ==EntityState.Added) { entityBase.CreatedDate =currentTime; } entityBase.LastModifiedDate =currentTime;戻り値 base.SaveChanges(); }}  

    1. 犬と猫の両方を所有しているユーザーを選択します

    2. PDO:MySQLサーバーがなくなりました

    3. mysql-pythonのインストールの問題(mac os x lionの場合)

    4. MySQLをif条件で更新します