diff --git a/framework/Furion/DatabaseAccessor/Repositories/Implantations/UpdateableRepository.cs b/framework/Furion/DatabaseAccessor/Repositories/Implantations/UpdateableRepository.cs index 7c97559203ff4e3c7f1f00e5a6265ae60be86ed2..fd194a4f46e15f02e1177693b3b0e7ca04d746af 100644 --- a/framework/Furion/DatabaseAccessor/Repositories/Implantations/UpdateableRepository.cs +++ b/framework/Furion/DatabaseAccessor/Repositories/Implantations/UpdateableRepository.cs @@ -43,12 +43,16 @@ public partial class PrivateRepository /// 代理中的实体 public virtual EntityEntry Update(TEntity entity, bool? ignoreNullValues = null) { - var entityEntry = Entities.Update(entity); - - // 忽略空值 - IgnoreNullValues(ref entity, ignoreNullValues); + if (Entities.Local.All(e => e != entity)) + { + Entities.Attach(entity); + var entityEntry = Entities.Update(entity); + // 忽略空值 + IgnoreNullValues(ref entity, ignoreNullValues); + return entityEntry; + } - return entityEntry; + return Entities.Entry(entity); } ///