Browse Source

Fix InsertReturnIdentity if column is short/ushort

pull/30/head
Kyle 2 years ago
parent
commit
d923e78006
  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); var snowColumn = this.EntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey && it.UnderType == UtilConstants.LongType);
if (snowColumn!=null) if (snowColumn!=null)
{ {
;
if (Convert.ToInt64(snowColumn.PropertyInfo.GetValue(result)) == 0) if (Convert.ToInt64(snowColumn.PropertyInfo.GetValue(result)) == 0)
{ {
var id = this.ExecuteReturnSnowflakeId(); var id = this.ExecuteReturnSnowflakeId();
@ -277,6 +276,14 @@ namespace SqlSugar
{ {
setValue = Convert.ToUInt64(idValue); 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 else
setValue = Convert.ToInt32(idValue); setValue = Convert.ToInt32(idValue);
this.Context.EntityMaintenance.GetProperty<T>(identityKey).SetValue(result, setValue, null); this.Context.EntityMaintenance.GetProperty<T>(identityKey).SetValue(result, setValue, null);
@ -370,6 +377,14 @@ namespace SqlSugar
{ {
setValue = Convert.ToUInt64(idValue); 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 else
setValue = Convert.ToInt32(idValue); setValue = Convert.ToInt32(idValue);
this.Context.EntityMaintenance.GetProperty<T>(identityKey).SetValue(result, setValue, null); 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); var snowColumn = this.EntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey && it.UnderType == UtilConstants.LongType);
if (snowColumn!=null) if (snowColumn!=null)
{ {
;
if (Convert.ToInt64(snowColumn.PropertyInfo.GetValue(result)) == 0) if (Convert.ToInt64(snowColumn.PropertyInfo.GetValue(result)) == 0)
{ {
var id = this.ExecuteReturnSnowflakeId(); var id = this.ExecuteReturnSnowflakeId();
@ -277,6 +276,14 @@ namespace SqlSugar
{ {
setValue = Convert.ToUInt64(idValue); 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 else
setValue = Convert.ToInt32(idValue); setValue = Convert.ToInt32(idValue);
this.Context.EntityMaintenance.GetProperty<T>(identityKey).SetValue(result, setValue, null); this.Context.EntityMaintenance.GetProperty<T>(identityKey).SetValue(result, setValue, null);
@ -370,6 +377,14 @@ namespace SqlSugar
{ {
setValue = Convert.ToUInt64(idValue); 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 else
setValue = Convert.ToInt32(idValue); setValue = Convert.ToInt32(idValue);
this.Context.EntityMaintenance.GetProperty<T>(identityKey).SetValue(result, setValue, null); this.Context.EntityMaintenance.GetProperty<T>(identityKey).SetValue(result, setValue, null);

Loading…
Cancel
Save