diff --git a/IRaCIS.Core.Infra.EFCore/Repository/IRaCISContextExtension.cs b/IRaCIS.Core.Infra.EFCore/Repository/IRaCISContextExtension.cs
index 71fb563e1..ebd59fe2a 100644
--- a/IRaCIS.Core.Infra.EFCore/Repository/IRaCISContextExtension.cs
+++ b/IRaCIS.Core.Infra.EFCore/Repository/IRaCISContextExtension.cs
@@ -119,7 +119,10 @@ namespace IRaCIS.Core.Infra.EFCore
/// EntityState.Detached的实体 修改 部分字段
public static void EntityModifyPartialFiled(this IRaCISDBContext _dbContext, T waitModifyEntity, Expression> updateFactory) where T : Entity
{
- var entityEntry = _dbContext.Entry(waitModifyEntity);
+ //解决重复跟踪问题
+ var tracked = _dbContext.ChangeTracker.Entries().FirstOrDefault(e => e.Entity.Id.Equals(waitModifyEntity.Id));
+ var entityEntry = tracked?? _dbContext.Entry(waitModifyEntity);
+
//entityEntry.State = EntityState.Detached;
var list = ((MemberInitExpression)updateFactory.Body).Bindings.Select(mb => mb.Member.Name)
@@ -134,7 +137,7 @@ namespace IRaCIS.Core.Infra.EFCore
foreach (PropertyInfo prop in list)
{
- _dbContext.Entry(waitModifyEntity).Property(prop.Name).IsModified = true;
+ entityEntry.Property(prop.Name).IsModified = true;
object value = prop.GetValue(applyObj);
prop.SetValue(waitModifyEntity, value);