| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Linq.Expressions;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- namespace SqlSugar
 
- {
 
-     public class OscarInserttable<T> : InsertableProvider<T> where T : class, new()
 
-     {
 
-         public override int ExecuteReturnIdentity()
 
-         {
 
-             InsertBuilder.IsReturnIdentity = true;
 
-             PreToSql();
 
-             string sql = InsertBuilder.ToSqlString().Replace("$PrimaryKey",this.SqlBuilder.GetTranslationColumnName(GetIdentityKeys().FirstOrDefault()));
 
-             RestoreMapping();
 
-             var result = Ado.GetScalar(sql, InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray()).ObjToInt();
 
-             return result;
 
-         }
 
-         public override async Task<int> ExecuteReturnIdentityAsync()
 
-         {
 
-             InsertBuilder.IsReturnIdentity = true;
 
-             PreToSql();
 
-             string sql = InsertBuilder.ToSqlString().Replace("$PrimaryKey", this.SqlBuilder.GetTranslationColumnName(GetIdentityKeys().FirstOrDefault()));
 
-             RestoreMapping();
 
-             var obj = await Ado.GetScalarAsync(sql, InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray());
 
-             var result = obj.ObjToInt();
 
-             return result;
 
-         }
 
-         public override KeyValuePair<string, List<SugarParameter>> ToSql()
 
-         {
 
-             var result= base.ToSql();
 
-             return new KeyValuePair<string, List<SugarParameter>>(result.Key.Replace("$PrimaryKey", GetPrimaryKeys().FirstOrDefault()), result.Value);
 
-         }
 
-         public override long ExecuteReturnBigIdentity()
 
-         {
 
-             InsertBuilder.IsReturnIdentity = true;
 
-             PreToSql();
 
-             string sql = InsertBuilder.ToSqlString().Replace("$PrimaryKey", this.SqlBuilder.GetTranslationColumnName(GetIdentityKeys().FirstOrDefault()));
 
-             RestoreMapping();
 
-             var result = Convert.ToInt64(Ado.GetScalar(sql, InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray()) ?? "0");
 
-             return result;
 
-         }
 
-         public override async Task<long> ExecuteReturnBigIdentityAsync()
 
-         {
 
-             InsertBuilder.IsReturnIdentity = true;
 
-             PreToSql();
 
-             string sql = InsertBuilder.ToSqlString().Replace("$PrimaryKey", this.SqlBuilder.GetTranslationColumnName(GetIdentityKeys().FirstOrDefault()));
 
-             RestoreMapping();
 
-             var result = Convert.ToInt64(await Ado.GetScalarAsync(sql, InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray()) ?? "0");
 
-             return result;
 
-         }
 
-         public override bool ExecuteCommandIdentityIntoEntity()
 
-         {
 
-             var result = InsertObjs.First();
 
-             var identityKeys = GetIdentityKeys();
 
-             if (identityKeys.Count == 0) { return this.ExecuteCommand() > 0; }
 
-             var idValue = ExecuteReturnBigIdentity();
 
-             Check.Exception(identityKeys.Count > 1, "ExecuteCommandIdentityIntoEntity does not support multiple identity keys");
 
-             var identityKey = identityKeys.First();
 
-             object setValue = 0;
 
-             if (idValue > int.MaxValue)
 
-                 setValue = idValue;
 
-             else
 
-                 setValue = Convert.ToInt32(idValue);
 
-             var propertyName = this.Context.EntityMaintenance.GetPropertyName<T>(identityKey);
 
-             typeof(T).GetProperties().First(t => t.Name.ToUpper() == propertyName.ToUpper()).SetValue(result, setValue, null);
 
-             return idValue > 0;
 
-         }
 
-     }
 
- }
 
 
  |