mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 22:11:36 +08:00
Update CodeFirst
This commit is contained in:
parent
c8f87dc029
commit
161aadb045
@ -136,6 +136,9 @@ namespace SqlSugar
|
|||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
|
|
||||||
|
var isMultiplePrimaryKey = dbColumns.Where(it => it.IsPrimarykey).Count() > 1|| entityColumns.Where(it => it.IsPrimarykey).Count() > 1;
|
||||||
|
|
||||||
|
|
||||||
var isChange = false;
|
var isChange = false;
|
||||||
foreach (var item in addColumns)
|
foreach (var item in addColumns)
|
||||||
{
|
{
|
||||||
@ -164,7 +167,7 @@ namespace SqlSugar
|
|||||||
if (dbColumn == null) continue;
|
if (dbColumn == null) continue;
|
||||||
bool pkDiff, idEntityDiff;
|
bool pkDiff, idEntityDiff;
|
||||||
KeyAction(item, dbColumn, out pkDiff, out idEntityDiff);
|
KeyAction(item, dbColumn, out pkDiff, out idEntityDiff);
|
||||||
if (dbColumn != null && pkDiff && !idEntityDiff)
|
if (dbColumn != null && pkDiff && !idEntityDiff&& isMultiplePrimaryKey==false)
|
||||||
{
|
{
|
||||||
var isAdd = item.IsPrimarykey;
|
var isAdd = item.IsPrimarykey;
|
||||||
if (isAdd)
|
if (isAdd)
|
||||||
@ -176,11 +179,19 @@ namespace SqlSugar
|
|||||||
this.Context.DbMaintenance.DropConstraint(tableName, string.Format("PK_{0}_{1}", tableName, item.DbColumnName));
|
this.Context.DbMaintenance.DropConstraint(tableName, string.Format("PK_{0}_{1}", tableName, item.DbColumnName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (pkDiff || idEntityDiff)
|
else if ((pkDiff || idEntityDiff)&& isMultiplePrimaryKey==false)
|
||||||
{
|
{
|
||||||
ChangeKey(entityInfo, tableName, item);
|
ChangeKey(entityInfo, tableName, item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (isMultiplePrimaryKey) {
|
||||||
|
var oldPkNames = dbColumns.Where(it => it.IsPrimarykey).Select(it => it.DbColumnName.ToLower()).ToList();
|
||||||
|
var newPkNames = entityColumns.Where(it => it.IsPrimarykey).Select(it => it.DbColumnName.ToLower()).ToList();
|
||||||
|
if (oldPkNames.Union(newPkNames).Count() != oldPkNames.Count) {
|
||||||
|
Check.Exception(true, ErrorMessage.GetThrowMessage("Modification of multiple primary key tables is not supported. Delete tables while creating", "不支持修改多主键表,请删除表在创建"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
if (isChange && IsBackupTable)
|
if (isChange && IsBackupTable)
|
||||||
{
|
{
|
||||||
this.Context.DbMaintenance.BackupTable(tableName, tableName + DateTime.Now.ToString("yyyyMMddHHmmss"), MaxBackupDataRows);
|
this.Context.DbMaintenance.BackupTable(tableName, tableName + DateTime.Now.ToString("yyyyMMddHHmmss"), MaxBackupDataRows);
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user