From 586f4a4488fadba2983f5cbb1ed2c98e127155f1 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Fri, 29 Mar 2024 13:45:17 +0800 Subject: [PATCH] Synchronization code --- .../CodeFirstProvider/CodeFirstProvider.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs index 190102fc4..3e0995c7b 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs @@ -514,7 +514,19 @@ namespace SqlSugar { var oldPkNames = dbColumns.Where(it => it.IsPrimarykey).Select(it => it.DbColumnName.ToLower()).OrderBy(it => it).ToList(); var newPkNames = entityColumns.Where(it => it.IsPrimarykey).Select(it => it.DbColumnName.ToLower()).OrderBy(it => it).ToList(); - if (!Enumerable.SequenceEqual(oldPkNames, newPkNames)) + if (oldPkNames.Count == 0&& newPkNames.Count>1) + { + try + { + this.Context.DbMaintenance.AddPrimaryKeys(tableName, newPkNames.ToArray()); + } + catch (Exception ex) + { + Check.Exception(true, ErrorMessage.GetThrowMessage("The current database does not support changing multiple primary keys. " + ex.Message, "当前数据库不支持修改多主键,"+ex.Message)); + throw ex; + } + } + else if (!Enumerable.SequenceEqual(oldPkNames, newPkNames)) { Check.Exception(true, ErrorMessage.GetThrowMessage("Modification of multiple primary key tables is not supported. Delete tables while creating", "不支持修改多主键表,请删除表在创建")); }