Browse Source

Merge pull request #1116 from Kxnrl/fix-insert-identity

修复InsertReturnIdentity由于主键是ushort/short导致的异常
pull/30/head
果糖网 2 years ago
committed by GitHub
parent
commit
2ed8df6ccb
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs
  2. 17
      Src/Asp.NetCore2/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs

17
Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs

@ -246,7 +246,6 @@ namespace SqlSugar
var snowColumn = this.EntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey && it.UnderType == UtilConstants.LongType);
if (snowColumn!=null)
{
;
if (Convert.ToInt64(snowColumn.PropertyInfo.GetValue(result)) == 0)
{
var id = this.ExecuteReturnSnowflakeId();
@ -277,6 +276,14 @@ namespace SqlSugar
{
setValue = Convert.ToUInt64(idValue);
}
else if (this.EntityInfo.Columns.Any(it => it.IsIdentity && it.PropertyInfo.PropertyType == typeof(ushort)))
{
setValue = Convert.ToUInt16(idValue);
}
else if (this.EntityInfo.Columns.Any(it => it.IsIdentity && it.PropertyInfo.PropertyType == typeof(short)))
{
setValue = Convert.ToInt16(idValue);
}
else
setValue = Convert.ToInt32(idValue);
this.Context.EntityMaintenance.GetProperty<T>(identityKey).SetValue(result, setValue, null);
@ -370,6 +377,14 @@ namespace SqlSugar
{
setValue = Convert.ToUInt64(idValue);
}
else if (this.EntityInfo.Columns.Any(it => it.IsIdentity && it.PropertyInfo.PropertyType == typeof(ushort)))
{
setValue = Convert.ToUInt16(idValue);
}
else if (this.EntityInfo.Columns.Any(it => it.IsIdentity && it.PropertyInfo.PropertyType == typeof(short)))
{
setValue = Convert.ToInt16(idValue);
}
else
setValue = Convert.ToInt32(idValue);
this.Context.EntityMaintenance.GetProperty<T>(identityKey).SetValue(result, setValue, null);

17
Src/Asp.NetCore2/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs

@ -246,7 +246,6 @@ namespace SqlSugar
var snowColumn = this.EntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey && it.UnderType == UtilConstants.LongType);
if (snowColumn!=null)
{
;
if (Convert.ToInt64(snowColumn.PropertyInfo.GetValue(result)) == 0)
{
var id = this.ExecuteReturnSnowflakeId();
@ -277,6 +276,14 @@ namespace SqlSugar
{
setValue = Convert.ToUInt64(idValue);
}
else if (this.EntityInfo.Columns.Any(it => it.IsIdentity && it.PropertyInfo.PropertyType == typeof(ushort)))
{
setValue = Convert.ToUInt16(idValue);
}
else if (this.EntityInfo.Columns.Any(it => it.IsIdentity && it.PropertyInfo.PropertyType == typeof(short)))
{
setValue = Convert.ToInt16(idValue);
}
else
setValue = Convert.ToInt32(idValue);
this.Context.EntityMaintenance.GetProperty<T>(identityKey).SetValue(result, setValue, null);
@ -370,6 +377,14 @@ namespace SqlSugar
{
setValue = Convert.ToUInt64(idValue);
}
else if (this.EntityInfo.Columns.Any(it => it.IsIdentity && it.PropertyInfo.PropertyType == typeof(ushort)))
{
setValue = Convert.ToUInt16(idValue);
}
else if (this.EntityInfo.Columns.Any(it => it.IsIdentity && it.PropertyInfo.PropertyType == typeof(short)))
{
setValue = Convert.ToInt16(idValue);
}
else
setValue = Convert.ToInt32(idValue);
this.Context.EntityMaintenance.GetProperty<T>(identityKey).SetValue(result, setValue, null);

Loading…
Cancel
Save