排除将 Linq 更新到实体上的列

本文关键字:实体 Linq 更新 排除 | 更新日期: 2023-09-27 18:34:29

我正在尝试存储所有记录的更新日期和创建日期。

我添加了保存更改方法的覆盖,当我更新记录时,创建日期变为空。 所以我的问题是,在更新时,我如何保持创建日期而不进行更改。

    public override int SaveChanges()
    {
        try
        {
            var changeSet = ChangeTracker.Entries();
            dynamic obj;
            if (changeSet != null)
            {
                foreach (var entry in changeSet.Where(c => c.State == EntityState.Added))
                {
                    obj = entry.Entity;
                    obj.CreatedDate = DateTime.UtcNow;
                }
                foreach (var entry in changeSet.Where(c => c.State == EntityState.Modified))
                {
                    obj = entry.Entity;
                    obj.ModifiedDate = DateTime.UtcNow;
                }
            }
        }
        catch (Exception ex)
        {
            throw;
        }
        return base.SaveChanges();
    }

排除将 Linq 更新到实体上的列

很简单,更新时不要传递创建日期!

 if (changeSet != null)
            {
                foreach (var entry in changeSet.Where(c => c.State == EntityState.Added))
                {
                    obj = entry.Entity;
                }
                foreach (var entry in changeSet.Where(c => c.State == EntityState.Modified))
                {
                    obj = entry.Entity;
                }
            }