public static async Task CopyAsync <T, TOptions>(this IDbConnection connection, IDataBatchOperation <TOptions> batch, IEnumerable <T> stream, BatchSaveStrategy saveStrategy = BatchSaveStrategy.Insert, long startingAt = 0, int?count = null, IDbTransaction transaction = null, int?commandTimeout = null, CancellationToken cancellationToken = default) { await connection.CopyAsync(batch, SimpleDataDescriptor.Create <T>(), stream, saveStrategy, startingAt, count, transaction, commandTimeout, cancellationToken); }
public void Insert_one_anonymous() { var descriptor = SimpleDataDescriptor.Create(typeof(User)); var query = SqlBuilder.Insert(new { Email = "*****@*****.**" }, descriptor); Assert.Equal("INSERT INTO User (Email) VALUES (@Email)", query.Sql); Assert.Equal(1, query.Parameters.Count); Assert.Equal("*****@*****.**", query.Parameters["@Email"]); _console.WriteLine(query.Sql); }
public void Delete_with_anonymous() { var descriptor = SimpleDataDescriptor.Create <User>(); var query = SqlBuilder.Delete(descriptor, new { Email = "*****@*****.**" }); Assert.Equal("DELETE FROM User WHERE Email = @Email", query.Sql); Assert.Equal(1, query.Parameters.Count); Assert.Equal("*****@*****.**", query.Parameters["@Email"]); _console.WriteLine(query.ToString()); }
public void Bad_where_clause_is_filtered_out() { var descriptor = SimpleDataDescriptor.Create <User>(); var query = SqlBuilder.Delete(descriptor, new { Email = "*****@*****.**", Foo = "Bar" }); Assert.Equal("DELETE FROM User WHERE Email = @Email", query.Sql); Assert.Equal(1, query.Parameters.Count); Assert.Equal("*****@*****.**", query.Parameters["@Email"]); _console.WriteLine(query.ToString()); }
public void Bad_set_clause_is_filtered_out() { var descriptor = SimpleDataDescriptor.Create <User>(); var query = SqlBuilder.Update(descriptor, set: new { Email = "*****@*****.**", Foo = "Bar" }); Assert.Equal("UPDATE User SET Email = @Email_set", query.Sql); Assert.Equal(1, query.Parameters.Count); Assert.Equal("*****@*****.**", query.Parameters["@Email_set"]); _console.WriteLine(query.ToString()); }
public void Bad_value_clause_is_filtered_out() { var descriptor = SimpleDataDescriptor.Create(typeof(User)); var dynamic = new { Email = "*****@*****.**", Foo = "Bar" }; var query = SqlBuilder.Insert(dynamic, descriptor); Assert.Equal("INSERT INTO User (Email) VALUES (@Email)", query.Sql); Assert.Equal(1, query.Parameters.Count); Assert.Equal("*****@*****.**", query.Parameters["@Email"]); _console.WriteLine(query.Sql); }
private static Action <IDbCommand, Type, IServiceProvider> OnCommand <TKey>() where TKey : IEquatable <TKey> { return((c, t, r) => { if (c is DocumentDbCommand command) { var options = r.GetRequiredService <IOptions <DocumentDbOptions> >(); var registry = r.GetRequiredService <ITypeRegistry>(); var descriptor = SimpleDataDescriptor.Create(t); registry.RegisterIfNotRegistered(t); command.Id = descriptor.Id?.Property?.Name; command.Type = t; command.DocumentType = descriptor.Table; command.Collection = options.Value.CollectionId; } }); }
public static void AddTypeMap<T>(IEqualityComparer<string> comparer) { var descriptor = SimpleDataDescriptor.Create<T>(); SqlMapper.SetTypeMap(typeof(T), new DescriptorColumnMapper(typeof(T), descriptor.All, comparer)); }