diff --git a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLInsertOrUpdate.cs b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLInsertOrUpdate.cs index 52e6bd4c4..3684d5d6d 100644 --- a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLInsertOrUpdate.cs @@ -58,7 +58,7 @@ namespace FreeSql.PostgreSQL.Curd if (IdentityColumn != null && flagInsert) sql = insert.ToSql(); else { - var ocdu = new OnConflictDoUpdate(_tempPrimarys?.Length > 0 ? insert : insert.InsertIdentity()); + var ocdu = new OnConflictDoUpdate(_tempPrimarys == _table.Primarys ? insert.InsertIdentity() : insert); ocdu._tempPrimarys = _tempPrimarys; var cols = _table.Columns.Values.Where(a => _updateSetDict.ContainsKey(a.Attribute.Name) || _tempPrimarys.Contains(a) == false && a.Attribute.CanUpdate == true && a.Attribute.IsIdentity == false && _updateIgnore.ContainsKey(a.Attribute.Name) == false);