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); } } }
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() }) ); } }
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); } }
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); } }
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);