public static async Task InsertAsync <TEntity>(this DapperHybridContext context, TEntity entity) { var connection = context.Database.GetDbConnection(); var entityType = context.Model.FindEntityType(typeof(TEntity)); if (entityType == null) { throw new InvalidOperationException($"Entity of type {typeof(TEntity).FullName} is not registered in DbContext. Use overload with table name and schema"); } var parameters = context.GetParameters(entity); var schema = entityType.GetSchema(); var table = entityType.GetTableName(); var statement = context.CreateSqlGenerator <TEntity>().Insert(schema, table, parameters.ColumnToParameterMapping); await connection.ExecuteAsync( statement.Statement, parameters, transaction : context.Database.CurrentTransaction?.GetDbTransaction()) .ConfigureAwait(false); }