mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 22:11:36 +08:00
PgSql dictionary insert return id
This commit is contained in:
parent
99b68ad01c
commit
02abc50241
@ -13,7 +13,8 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
InsertBuilder.IsReturnIdentity = true;
|
InsertBuilder.IsReturnIdentity = true;
|
||||||
PreToSql();
|
PreToSql();
|
||||||
string sql = InsertBuilder.ToSqlString().Replace("$PrimaryKey",this.SqlBuilder.GetTranslationColumnName(GetIdentityKeys().FirstOrDefault()));
|
string identityColumn = GetIdentityColumn();
|
||||||
|
string sql = InsertBuilder.ToSqlString().Replace("$PrimaryKey", this.SqlBuilder.GetTranslationColumnName(identityColumn));
|
||||||
RestoreMapping();
|
RestoreMapping();
|
||||||
var result = Ado.GetScalar(sql, InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray()).ObjToInt();
|
var result = Ado.GetScalar(sql, InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray()).ObjToInt();
|
||||||
After(sql, result);
|
After(sql, result);
|
||||||
@ -23,7 +24,8 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
InsertBuilder.IsReturnIdentity = true;
|
InsertBuilder.IsReturnIdentity = true;
|
||||||
PreToSql();
|
PreToSql();
|
||||||
string sql = InsertBuilder.ToSqlString().Replace("$PrimaryKey", this.SqlBuilder.GetTranslationColumnName(GetIdentityKeys().FirstOrDefault()));
|
string identityColumn = GetIdentityColumn();
|
||||||
|
string sql = InsertBuilder.ToSqlString().Replace("$PrimaryKey", this.SqlBuilder.GetTranslationColumnName(identityColumn));
|
||||||
RestoreMapping();
|
RestoreMapping();
|
||||||
var obj = await Ado.GetScalarAsync(sql, InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray());
|
var obj = await Ado.GetScalarAsync(sql, InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray());
|
||||||
var result = obj.ObjToInt();
|
var result = obj.ObjToInt();
|
||||||
@ -74,5 +76,17 @@ namespace SqlSugar
|
|||||||
typeof(T).GetProperties().First(t => t.Name.ToUpper() == propertyName.ToUpper()).SetValue(result, setValue, null);
|
typeof(T).GetProperties().First(t => t.Name.ToUpper() == propertyName.ToUpper()).SetValue(result, setValue, null);
|
||||||
return idValue > 0;
|
return idValue > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GetIdentityColumn()
|
||||||
|
{
|
||||||
|
var identityColumn = GetIdentityKeys().FirstOrDefault();
|
||||||
|
if (identityColumn == null)
|
||||||
|
{
|
||||||
|
var columns = this.Context.DbMaintenance.GetColumnInfosByTableName(InsertBuilder.GetTableNameString);
|
||||||
|
identityColumn = columns.First(it => it.IsIdentity || it.IsPrimarykey).DbColumnName;
|
||||||
|
}
|
||||||
|
return identityColumn;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user