public TEntity Insert(IStorageDbConnection conn, TEntity entityToInsert, IEnumerable <Expression <Func <TEntity, object> > > ignoredFields, AutoIncrementTransformer <TKey, TEntity> atf, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (entityToInsert == null) { throw new ArgumentNullException(nameof(entityToInsert)); } var result = ConstructInsertSql(entityToInsert, ignoredFields, atf != null); conn.TextWriter.WriteSql(result.CommandText); if (atf == null) { conn.Execute(result.CommandText, result.Parameters, tr); } else { var id = (TKey)Convert.ChangeType(conn.QuerySingle(typeof(TKey), result.CommandText, result.Parameters, tr), typeof(TKey), CultureInfo.InvariantCulture); atf(id, entityToInsert); } return(entityToInsert); }
public async Task <TEntity> InsertAsync(IStorageDbConnection conn, TEntity entityToInsert, IEnumerable <Expression <Func <TEntity, object> > > ignoredFields, AutoIncrementTransformer <TKey, TEntity> atf, IDbTransaction tr, CancellationToken cancellationToken) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (entityToInsert == null) { throw new ArgumentNullException(nameof(entityToInsert)); } var result = ConstructInsertSql(entityToInsert, ignoredFields, atf != null); conn.TextWriter.WriteSql(result.CommandText); var cmd = CreateDapperCmd(result.CommandText, result.Parameters, tr, cancellationToken); if (atf == null) { await conn.ExecuteAsync(cmd); } else { var id = (TKey)Convert.ChangeType(await conn.QuerySingleAsync(typeof(TKey), cmd), typeof(TKey), CultureInfo.InvariantCulture); atf(id, entityToInsert); } return(entityToInsert); }
public static Task <TEntity> InsertAsync <TKey, TEntity>(this INewEntityStore <TKey, TEntity> newStore, IStorageDbConnection conn, TEntity entityToInsert, AutoIncrementTransformer <TKey, TEntity> atf, IDbTransaction tr, CancellationToken cancellationToken) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (newStore == null) { throw new ArgumentNullException(nameof(newStore)); } return(newStore.InsertAsync(conn, entityToInsert, null, atf, tr, cancellationToken)); }
public static Task <TEntity> InsertAsync <TKey, TEntity>(this INewEntityStore <TKey, TEntity> newStore, IStorageDbConnection conn, TEntity entityToInsert, IEnumerable <Expression <Func <TEntity, object> > > ignoredFields, AutoIncrementTransformer <TKey, TEntity> atf, IDbTransaction tr) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (newStore == null) { throw new ArgumentNullException(nameof(newStore)); } return(newStore.InsertAsync(conn, entityToInsert, ignoredFields, atf, tr, default(CancellationToken))); }
public static TEntity Insert <TKey, TEntity>(this INewEntityStore <TKey, TEntity> newStore, IStorageDbConnection conn, TEntity entityToInsert, IEnumerable <Expression <Func <TEntity, object> > > ignoredFields, AutoIncrementTransformer <TKey, TEntity> atf) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (newStore == null) { throw new ArgumentNullException(nameof(newStore)); } return(newStore.Insert(conn, entityToInsert, ignoredFields, atf, null)); }