【问题标题】:How can add custom EntityState enum如何添加自定义 EntityState 枚举
【发布时间】:2020-04-11 22:56:45
【问题描述】:

我的项目使用软删除,但一个数据库表我不应该使用软删除。我想在数据库表中删除这一行。我的软删除功能会检查“实体状态”并在此记录中添加已删除单元格的当前日期。

我想添加新的实体状态枚举。怎么会这样?

var deletedEntities = ChangeTracker.Entries().Where(e => e.State == EntityState.Deleted).ToList();
        deletedEntities.ForEach(e =>
        {
            try
            {
                e.Property("DeletedAt").CurrentValue = DateTime.Now;
                e.State = EntityState.Modified;
            }
            catch (System.Exception)
            {

            }
        });

【问题讨论】:

    标签: c# .net-core entity-framework-core asp.net-core-webapi


    【解决方案1】:

    添加一个新的状态值不是正确的做法,创建一个新的接口,例如ISoftDeletable 并用它过滤实体

    var deletedEntities = ChangeTracker.Entries().Where(e => e.State == 
                        EntityState.Deleted && e.Entity is ISoftDeletable).ToList();
    
    deletedEntities.ForEach(e =>
        {
            try
            {
                e.Property("DeletedAt").CurrentValue = DateTime.Now;
                e.State = EntityState.Modified;
            }
            catch (System.Exception)
            {
    
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 2021-04-08
      • 2015-08-12
      • 2011-09-11
      • 1970-01-01
      • 2010-11-30
      相关资源
      最近更新 更多