Example #1
1
        public void BulkCopyLinqTypes(string context)
        {
            foreach (var bulkCopyType in new[] { BulkCopyType.MultipleRows, BulkCopyType.ProviderSpecific })
            {
                using (var db = new DataConnection(context))
                {
                    db.BulkCopy(
                        new BulkCopyOptions { BulkCopyType = bulkCopyType },
                        Enumerable.Range(0, 10).Select(n =>
                            new LinqDataTypes
                            {
                                ID            = 4000 + n,
                                MoneyValue    = 1000m + n,
                                DateTimeValue = new DateTime(2001,  1,  11,  1, 11, 21, 100),
                                BoolValue     = true,
                                GuidValue     = Guid.NewGuid(),
                                SmallIntValue = (short)n
                            }
                        ));

                    db.GetTable<LinqDataTypes>().Delete(p => p.ID >= 4000);
                }
            }
        }
Example #2
1
		public void BulkCopyTest([Values(
			ProviderName.SqlServer, ProviderName.Access, ProviderName.DB2, ProviderName.Firebird, 
			ProviderName.Informix, ProviderName.MySql, ProviderName.Oracle, ProviderName.PostgreSQL,
			ProviderName.SqlCe, ProviderName.SQLite, ProviderName.Sybase)] string configString)
		{
			using (var db = new DataConnection(configString))
			{
				db.BulkCopy(
					new BulkCopyOptions { BulkCopyTimeout = 60 * 10 },
					Enumerable
						.Range(1, 100)
						.Select(n => new TestTable
						{
							Name = n.ToString()
						})
					);
			}
		}
Example #3
1
        void BulkCopyTest(string context, BulkCopyType bulkCopyType)
        {
            using (var conn = new DataConnection(context))
            {
                conn.BeginTransaction();

                conn.BulkCopy(new BulkCopyOptions { MaxBatchSize = 50000, BulkCopyType = bulkCopyType },
                    Enumerable.Range(0, 100000).Select(n =>
                        new AllType
                        {
                            ID                  = 2000 + n,
                            bigintDataType      = 3000 + n,
                            smallintDataType    = (short)(4000 + n),
                            tinyintDataType     = (sbyte)(5000 + n),
                            mediumintDataType   = 6000 + n,
                            intDataType         = 7000 + n,
                            numericDataType     = 8000 + n,
                            decimalDataType     = 9000 + n,
                            doubleDataType      = 8800 + n,
                            floatDataType       = 7700 + n,
                            dateDataType        = DateTime.Now,
                            datetimeDataType    = DateTime.Now,
                            timestampDataType   = null,
                            timeDataType        = null,
                            yearDataType        = (1000 + n) % 100,
                            year2DataType       = (1000 + n) % 100,
                            year4DataType       = null,
                            charDataType        = 'A',
                            varcharDataType     = "",
                            textDataType        = "",
                            binaryDataType      = null,
                            varbinaryDataType   = null,
                            blobDataType        = new byte[] { 1, 2, 3 },
                            bitDataType         = null,
                            enumDataType        = "Green",
                            setDataType         = "one",
                            intUnsignedDataType = (uint)(5000 + n),
                        }));

                //var list = conn.GetTable<ALLTYPE>().ToList();

                conn.GetTable<DB2Test.ALLTYPE>().Delete(p => p.SMALLINTDATATYPE >= 5000);
            }
        }
Example #4
0
 public static BulkCopyRowsCopied ProviderSpecificBulkCopy <T>(this DataConnection dataConnection, IEnumerable <T> source, int bulkCopyTimeout = 0, bool keepIdentity = false, int notifyAfter = 0, Action <BulkCopyRowsCopied> rowsCopiedCallback = null) where T : class
 => dataConnection.BulkCopy(new BulkCopyOptions {
     BulkCopyType       = BulkCopyType.ProviderSpecific,
     BulkCopyTimeout    = bulkCopyTimeout,
     KeepIdentity       = keepIdentity,
     NotifyAfter        = notifyAfter,
     RowsCopiedCallback = rowsCopiedCallback
 }, source);
 public void BulkCopyProviderSpecificLowerCaseColumns(string context)
 {
     using (var db = new DataConnection(context))
     {
         var result = db.BulkCopy(
             new BulkCopyOptions { BulkCopyType = BulkCopyType.ProviderSpecific },
             Enumerable.Range(0, 10).Select(n =>
                 new BulkInsertLowerCaseColumns
                 {
                     ID = 4000 + n,
                     MoneyValue = 1000m + n,
                     DateTimeValue = new DateTime(2001, 1, 11, 1, 11, 21, 100),
                     BoolValue = true,
                     GuidValue = Guid.NewGuid(),
                     SmallIntValue = (short)n
                 }
             ));
         Assert.That(result.RowsCopied, Is.EqualTo(10));
         var count = db.GetTable<BulkInsertLowerCaseColumns>().Delete(p => p.ID >= 4000);
         Assert.That(count, Is.EqualTo(10));
     }
 }
        void BulkCopyTest(string context, BulkCopyType bulkCopyType)
        {
            using (var conn = new DataConnection(context))
            {
                conn.BeginTransaction();

                conn.BulkCopy(new BulkCopyOptions { MaxBatchSize = 50, BulkCopyType = bulkCopyType },
                    Enumerable.Range(0, 100).Select(n =>
                        new AllType
                        {
                            ID = 2000 + n,
                            bigintDataType = 3000 + n,
                            smallintDataType = (short)(4000 + n),
                            decimalDataType = 900000 + n,
                            smalldecimalDataType = 90000 + n,
                            intDataType = 7000 + n,
                            tinyintDataType = (byte)(5000 + n),
                            floatDataType = 7700 + n,
                            realDataType = 7600 + n,

                            dateDataType = DateTime.Now,
                            timeDataType = DateTime.Now - DateTime.Today,
                            seconddateDataType = DateTime.Now,
                            timestampDataType = DateTime.Now,

                            charDataType = 'A',
                            varcharDataType = "AA",
                            textDataType = "text",
                            shorttextDataType = "shorttext",
                            ncharDataType = '\u00fc',
                            nvarcharDataType = "A\u00fcfsdf\u00fc",
                            alphanumDataType = "abcQWE654",
                            binaryDataType = new byte[] { 1 },
                            varbinaryDataType = new byte[] { 1, 2, 3 },
                            blobDataType = new byte[] { 1, 2, 3, 4, 5, 6 },
                            clobDataType = "clobclobclob",
                            nclobDataType = "nclob\u00fcnclob\u00fcnclob\u00fc"
                        }));

                conn.GetTable<AllType>().Delete(p => p.ID >= 2000);
            }
        }
Example #7
0
 public static BulkCopyRowsCopied MultipleRowsCopy <T>(this DataConnection dataConnection, IEnumerable <T> source, int maxBatchSize = 1000, Action <BulkCopyRowsCopied> rowsCopiedCallback = null) where T : class
 => dataConnection.BulkCopy(new BulkCopyOptions {
     BulkCopyType       = BulkCopyType.MultipleRows,
     MaxBatchSize       = maxBatchSize,
     RowsCopiedCallback = rowsCopiedCallback
 }, source);