Esempio n. 1
0
 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);
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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());
        }
Esempio n. 4
0
        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());
        }
Esempio n. 5
0
        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());
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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;
                }
            });
        }
Esempio n. 8
0
 public static void AddTypeMap<T>(IEqualityComparer<string> comparer)
 {
     var descriptor = SimpleDataDescriptor.Create<T>();
     SqlMapper.SetTypeMap(typeof(T), new DescriptorColumnMapper(typeof(T), descriptor.All, comparer));
 }