排除将 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();
}
很简单,更新时不要传递创建日期!
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;
}
}