2016-03-25 7 views
2

ネットコアiのソフトempleやすいメント内のエンティティフレームワーク6に.NETコアまたはmvc6エンティティフレームワーク7ソフトは

にエンティティフレームワーク7で削除しても、私はウィッヒを知らない実装する方法

を削除します。パッケージをDNXにインストールし、エンティティフレームワーク7でソフト削除を実装してください

私はtanxを手伝ってください。

答えて

1

SaveChanges関数をオーバーライドできます。

public override int SaveChanges() 
    { 
     var objectStateEntries = ChangeTracker.Entries() 
     .Where(e => e.Entity is BaseEntity && e.State != EntityState.Detached && e.State != EntityState.Unchanged).ToList(); 
     var currentTime = DateTime.UtcNow; 
     foreach (var entry in objectStateEntries) 
     { 
      var entityBase = entry.Entity as BaseEntity; 
      if (entityBase == null) continue; 
      switch (entry.State) 
      { 
       case EntityState.Deleted: 
        { 
         entry.State = EntityState.Modified; 
         entityBase.DeletedTime = currentTime; 
         entityBase.IsDeleted = true; 
         break; 
        } 
       case EntityState.Modified: 
        entityBase.UpdatedTime = currentTime; 
        break; 
       case EntityState.Added: 
        entityBase.CreatedTime = currentTime; 
        break; 
       default: 
        break; 
      } 
     } 
     return base.SaveChanges(); 
    } 

マイBaseEntityクラス:

public class BaseEntity 
{ 
    public Guid Id { get; set; } 
    public DateTime CreatedTime { get; set; } 
    public DateTime? UpdatedTime { get; set; } 
    public DateTime? DeletedTime { get; set; } 

    public bool IsDeleted { get; set; } 
} 
関連する問題