private static void ClearDatabase() { using (var context = new ExampleContext()) { var sql = String.Format("TRUNCATE TABLE {0}", context.GetTableName <Example>()); context.Database.ExecuteSqlCommand(sql); } }
private static void PersistDataUsingSqlBulkCopy(IEnumerable <Example> data) { using (var context = new ExampleContext()) { const SqlBulkCopyOptions options = SqlBulkCopyOptions.CheckConstraints | SqlBulkCopyOptions.KeepNulls | SqlBulkCopyOptions.KeepIdentity; var inputData = new DataTable(); var columns = context.GetColumns <Example>().ToList(); foreach (var column in columns) { inputData.Columns.Add(column.Item1, column.Item2); } foreach (var record in data) { var row = inputData.NewRow(); foreach (var column in columns) { row[column.Item1] = typeof(Example).GetProperty(column.Item1).GetValue(record); } inputData.Rows.Add(row); } using (var tx = new TransactionScope()) { using (var bcp = new SqlBulkCopy(context.Database.Connection.ConnectionString, options)) { bcp.BatchSize = 2500; bcp.DestinationTableName = context.GetTableName <Example>(); bcp.WriteToServer(inputData); } tx.Complete(); } } }