2
ネットコアiのソフトempleやすいメント内のエンティティフレームワーク6に.NETコアまたはmvc6エンティティフレームワーク7ソフトは
にエンティティフレームワーク7で削除しても、私はウィッヒを知らない実装する方法
を削除します。パッケージをDNXにインストールし、エンティティフレームワーク7でソフト削除を実装してください
私はtanxを手伝ってください。
ネットコアiのソフトempleやすいメント内のエンティティフレームワーク6に.NETコアまたはmvc6エンティティフレームワーク7ソフトは
にエンティティフレームワーク7で削除しても、私はウィッヒを知らない実装する方法
を削除します。パッケージをDNXにインストールし、エンティティフレームワーク7でソフト削除を実装してください
私はtanxを手伝ってください。
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; }
}