Browse Source

ExecuteCommandIdentityIntoEntity uint type error

pull/18/head
sunkaixuan 3 years ago
parent
commit
4dfa4e85ea
  1. 11
      Src/Asp.Net/MySqlTest/UnitTest/UCodeFirst.cs
  2. 8
      Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs

11
Src/Asp.Net/MySqlTest/UnitTest/UCodeFirst.cs

@ -43,9 +43,18 @@ namespace OrmTest
Db.Insertable(new List<UnitDateOfTime2> { new UnitDateOfTime2() { DateTimeOffset1 = DateTimeOffset.Now }, new UnitDateOfTime2() { DateTimeOffset1 = DateTimeOffset.Now } }).ExecuteCommand(); Db.Insertable(new List<UnitDateOfTime2> { new UnitDateOfTime2() { DateTimeOffset1 = DateTimeOffset.Now }, new UnitDateOfTime2() { DateTimeOffset1 = DateTimeOffset.Now } }).ExecuteCommand();
var list2 = Db.Queryable<UnitDateOfTime2>().ToList(); var list2 = Db.Queryable<UnitDateOfTime2>().ToList();
Db.Insertable(new UnitDateOfTime222() { DateTimeOffset1 = null }).ExecuteCommand(); Db.Insertable(new UnitDateOfTime222() { DateTimeOffset1 = null }).ExecuteCommand();
if(Db.DbMaintenance.IsAnyTable("Unit1afa113111"))
Db.DbMaintenance.DropTable("Unit1afa113111");
Db.CodeFirst.InitTables<Unit1afa113111>();
var entity=Db.Insertable(new Unit1afa113111() { Name = "a" }).ExecuteReturnEntity();
} }
public class Unit1afa113111
{
[SugarColumn(ColumnName ="aid",IsPrimaryKey =true,IsIdentity =true,ColumnDataType ="int(11)unsigned")]
public uint id { get; set; }
public string Name { get; set; }
}
public class UnitDateOfTime2 public class UnitDateOfTime2
{ {
[SqlSugar.SugarColumn(ColumnDataType ="datetime(3)")] [SqlSugar.SugarColumn(ColumnDataType ="datetime(3)")]

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

@ -203,6 +203,14 @@ namespace SqlSugar
object setValue = 0; object setValue = 0;
if (idValue > int.MaxValue) if (idValue > int.MaxValue)
setValue = idValue; setValue = idValue;
else if (this.EntityInfo.Columns.Any(it => it.IsIdentity && it.PropertyInfo.PropertyType == typeof(uint)))
{
setValue = Convert.ToUInt32(idValue);
}
else if (this.EntityInfo.Columns.Any(it => it.IsIdentity && it.PropertyInfo.PropertyType == typeof(ulong)))
{
setValue = Convert.ToUInt64(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