diff --git a/docs/404.md b/docs/404.md
deleted file mode 100644
index f01abe3..0000000
--- a/docs/404.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-layout: default
-title: Error - 404
-permalink: /404.html
----
-
-{% include template-h1.html %}
-
-Oops! The page has moved, or the link is broken.
-
-Let us know how you landed on this page, and we will try to fix the link: info@zzzprojects.com
-
-Go to Home
diff --git a/docs/CNAME b/docs/CNAME
deleted file mode 100644
index 8c1ae1c..0000000
--- a/docs/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-bulk-operations.net
\ No newline at end of file
diff --git a/docs/_config.yml b/docs/_config.yml
deleted file mode 100644
index 689283b..0000000
--- a/docs/_config.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-highlighter: rouge
-gems:
- - jekyll-sitemap
-defaults:
- -
- scope:
- path: ""
- type: "pages"
- values:
- last_modified_at: "2017-04-07"
diff --git a/docs/_data/pages.csv b/docs/_data/pages.csv
deleted file mode 100644
index 937880d..0000000
--- a/docs/_data/pages.csv
+++ /dev/null
@@ -1,50 +0,0 @@
-title,url,category
-Overview,overview,tutorials
-Requirements,requirements,tutorials
-Installing,installing,tutorials
-Upgrading,upgrading,tutorials
-Licensing,licensing,tutorials
-Bulk Methods,tutorial-bulk-methods,tutorials
-Bulk Generic Methods,tutorial-bulk-generic-methods,tutorials
-From Query Operations,tutorial-from-query-methods,tutorials
-API,api,api
-Bulk Insert,bulk-insert,api
-Bulk Update,bulk-update,api
-Bulk Delete,bulk-delete,api
-Bulk Merge,bulk-merge,api
-Bulk SaveChanges,bulk-savechanges,api
-Bulk Synchronize,bulk-synchronize,api
-Update from Query,update-from-query,api
-Delete from Query,delete-from-query,api
-Audit,audit,api
-Batch,batch,api
-Column Expression,column-expression,api
-Execute Event,execute-event,api
-Log,log,api
-Temporary Table,temporary-table,api
-Transient Error,transient-error,api
-SQL Server,sql-server,api
-BulkOperation Manager,bulkoperation-manager,api
-Articles,articles,articles
-Benchmark,benchmark-pitfall,articles
-Insert IF NOT Exists,insert-if-not-exists,articles
-Insert Keep Identity,insert-keep-identity,articles
-Update Duplicate Key,update-duplicate-key,articles
-Update Key Value,update-key-value,articles
-Input Expression,input-expression,articles
-Key Expression,key-expression,articles
-Output Expression,output-expression,articles
-Ignore on Merge Insert Expression,ignore-on-merge-insert-expression,articles
-Ignore on Merge Update Expression,ignore-on-merge-update-expression,articles
-Synchronize Expression,synchronize-expression,articles
-FAQ,faq,faq
-Contact Us,contact-us,faq
-Issue Tracker,issue-tracker,faq
-General,faq-general,faq
-Installation,faq-installation,faq
-License,faq-license,faq
-Troubleshooting,troubleshooting,troubleshooting
-Trial Period Expired,trial-period-expired-exception,troubleshooting
-MD5,md5-exception,troubleshooting
-Bulk Operations,/,home
-Trial,trial,faq
diff --git a/docs/_drafts/license.md b/docs/_drafts/license.md
deleted file mode 100644
index 332acd6..0000000
--- a/docs/_drafts/license.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-layout: default
-title: Entity Framework Extensions - license
-permalink: license
----
-
-{% include template-h1.html %}
-
-##### The trial period is expired. Please buy a product license or go to http://www.zzzprojects.com and download the latest trial version.
-
-This error may happen if no license has been added and the trial has expired.
-
-If you are evaluating the product, simply download the latest version. A new trial for the current month is always available few day before the start of the months.
-
-If you receive this error and you have added a license, you probably didn't add it right.
-
-##### ERROR_001: The provided license key is invalid or trial period is expired. Please buy a product license or go to http://www.zzzprojects.com and download the latest trial version. License Count:
-
-This error may happen if your license is valid but for another provider.
-
-My example, you purchased a license for SQL Server and try to user it with Oracle provider.
-
-##### ERROR_002: The provided license key is invalid or trial period is expired. Please buy a product license or go to http://www.zzzprojects.com and download the latest trial version. License Name: '{0}';License Key: '{1}'
-
-You receive this error when you enter an invalid license. Make sure the license key and license name is exactly what you received.
-
-This error may also be caused when FIPS Compliant algorithms is enabled. This options should always be disabled.
-
-You can find how to disable it here: http://docs.trendmicro.com/all/ent/sc/v3.0/en-US/cmcolh/t_fips.html
-
-##### ERROR_003:The provided license key is invalid or trial period is expired. Please buy a product license or go to http://www.zzzprojects.com and download the latest trial version. License Name: '{0}';License Key: '{1}';MD5 Issue;
-
-You receive this error when you enter an invalid license. Make sure the license key and license name is exactly what you received.
-
-This issue is often raised because the last character in the license key is missing!
-
-##### ERROR_004:The provided license key is invalid or trial period is expired. Please buy a product license or go to http://www.zzzprojects.com and download the latest trial version. License Name: '{0}';License Key: '{1}';ExpirationDate: '{2}'
-
-You receive this error when you try to use a version released after your support & upgrade expiration date.
diff --git a/docs/_drafts/old_home.md b/docs/_drafts/old_home.md
deleted file mode 100644
index b88e4a1..0000000
--- a/docs/_drafts/old_home.md
+++ /dev/null
@@ -1,708 +0,0 @@
-
-
-
Use scalable bulk operations and always get the best performance available for your database provider.
-
-
SQL Server 2008+
-
SQL Azure
-
SQL Compact
-
MySQL
-
SQLite
-
PostgreSQL
-
Oracle
-
-
-
-
-
-
Operations
-
1,000 Entities
-
2,000 Entities
-
5,000 Entities
-
-
-
SaveChanges
-
1,000 ms
-
2,000 ms
-
5,000 ms
-
-
-
BulkSaveChanges
-
90 ms
-
150 ms
-
350 ms
-
-
-
BulkInsert
-
6 ms
-
10 ms
-
15 ms
-
-
-
BulkUpdate
-
50 ms
-
55 ms
-
65 ms
-
-
-
BulkDelete
-
45 ms
-
50 ms
-
60 ms
-
-
-
BulkMerge
-
65 ms
-
80 ms
-
110 ms
-
-
-
-
* Benchmark for SQL Server
-
-
-
-
-
-
-
-
-
Amazing performance, outstanding support!
-
-
- "We were very, very pleased with the customer support. There was no question, problem or wish that was not answered AND solved within days! We think that’s very unique!" Klemens Stelzmüller, Beka-software
-
- "I’d definitely recommend it as it is a great product with a great performance and reliability." Eric Rey, Transtur
-
- "It’s great. It took me 5 minutes to implement it and makes my application 100x more responsive for certain database operations." Dave Weisberg
Improving your applications performance couldn’t have been made easier!
-
-
Easy to use
-
Easy to customize
-
Easy to maintain
-
-
-
-{% highlight csharp %}
-// Easy to use
-context.BulkSaveChanges();
-
-// Easy to customize
-context.BulkSaveChanges(operation => operation.BatchSize = 1000);
-{% endhighlight %}
-
-
-
-
-
-
-
-
Bulk Operations
-
-
-
Use flexible features to overcome Entity Framework limitations
-
-
Choose batch size
-
Choose columns
-
Choose primary key
-
-
-
-
-{% highlight csharp %}
-// Use all kind of bulk operations
-context.BulkInsert(customers);
-context.BulkUpdate(customers);
-context.BulkDelete(customers);
-
-// Customize your operation
-context.BulkMerge(customers, operation => {
- operation.BatchSize = 1000;
- operation.ColumnPrimaryKeyExpression = customer => customer.Code;
-});
-{% endhighlight %}
-
-
-
-
-
-
-
-
Bulk from LINQ Query
-
-
-
Perform bulk operations from LINQ Query without loading entities in the context.
-
-
DeleteFromQuery
-
UpdateFromQuery
-
-
-
-
-{% highlight csharp %}
-// DELETE all customers that are inactive for more than 2 years
-context.Customers
- .Where(x => x.LastLogin < DateTime.Now.AddYears(-2))
- .DeleteFromQuery(operation => operation.BatchSize = 10000);
-
-// UPDATE all customers that are inactive for more than 2 years
-context.Customers
- .Where(x => x.Actif && x.LastLogin < DateTime.Now.AddYears(-2))
- .UpdateFromQuery(x => new Customer {Actif = false});
-{% endhighlight %}
-
- "We were very, very pleased with the customer support. There was no question, problem or wish that was not answered AND solved within days! We think that’s very unique!" Klemens Stelzmüller, Beka-software
-
- "I’d definitely recommend it as it is a great product with a great performance and reliability." Eric Rey, Transtur
-
- "It’s great. It took me 5 minutes to implement it and makes my application 100x more responsive for certain database operations." Dave Weisberg
Overcome SqlBulkCopy limitations and use flexible features to output inserted identity and concurrency column values.
-
-
-{% highlight csharp %}
-var bulk = new BulkOperation(connection)
-
-// Output newly inserted identity value after an insert
-bulk.ColumnMappings.Add("CustomerID", ColumnMappingDirectionType.Output);
-
-bulk.BulkInsert(dt);
-{% endhighlight %}
-
-
-
-
-
-
-
-
Insert, Update, Delete, Merge and more...
-
-
-
Bulk Operations is not only about inserting, get more capability over SqlBulkCopy.
-
-
BulkInsert
-
BulkUpdate
-
BulkDelete
-
BulkMerge (Upsert)
-
BulkSaveChanges
-
BulkSynchronize
-
-
-
-
-{% highlight csharp %}
-// Support all type of operations
-var bulk = new BulkOperation(connection);
-bulk.BulkInsert(dt);
-bulk.BulkUpdate(dt);
-bulk.BulkDelete(dt);
-bulk.BulkMerge(dt);
-bulk.BulkSaveChanges(ds);
-bulk.BulkSynchronize(dt);
-{% endhighlight %}
-
-
-
-
-
-
-
-
Generic List<> as DataSource
-
-
-
Improve code maintainability by using strongly-typed lambda expression over hard coded string.
-
-
Use Bulk Operations with Generic List<>
-
Use Bulk Operations with Expando Object
-
Use Lambda Expression for mapping
-
-
-
-
-{% highlight csharp %}
-var bulk= new BulkOperation(connection);
-bulk.DestinationTableName = "Customer";
-
-// Column Columns to Input
-bulk.ColumnInputExpression = c => new { c.Code, c.Name };
-
-// Choose Columns to Output
-bulk.ColumnOutputExpression = c => c.CustomerID;
-
-// Choose Key to Use
-bulk.ColumnPrimaryKeyExpression = c => c.Code;
-
-bulk.BulkMerge(customers);
-{% endhighlight %}
-
-
-
-
-
-
-
-
Bulk Operations from LINQ Query
-
-
-
Perform bulk operations from LINQ Query without loading entities in memory.
-
-
DeleteFromQuery
-
UpdateFromQuery
-
-
-
-
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-// DELETE all customers inactive for more than 2 years
-bulk.DeleteFromQuery(
- c => c.Where(x => x.LastLogin < DateTime.Now.AddYears(-2)));
-
-// UPDATE all customers inactive for more than 2 years
-bulk.UpdateFromQuery(
- c => c.Where(x => x.Actif && x.LastLogin < DateTime.Now.AddYears(-2)),
- c => new Customer {Actif = false});
-{% endhighlight %}
-
-
-
-
-
-
-
-
AutoMap with Case Insensitive
-
-
-
Sick of not being able to map column because of case sensitivity issue? Use flexible features to customize configuration
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/pages/api/api.md b/docs/pages/api/api.md
deleted file mode 100644
index acdbc5a..0000000
--- a/docs/pages/api/api.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: default
-title: API
-permalink: api
----
-
-{% include template-h1.html %}
-
-## API
-
-
-{% for num in (0..site.data.pages.size) %}
- {% if site.data.pages[num].category == page.permalink and site.data.pages[num].url != page.permalink %}
-
diff --git a/docs/pages/api/bulk-delete.md b/docs/pages/api/bulk-delete.md
deleted file mode 100644
index aaa8803..0000000
--- a/docs/pages/api/bulk-delete.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-layout: default
-title: Bulk Delete
-permalink: bulk-delete
----
-
-{% include template-h1.html %}
-
-## Bulk Delete
-Execute a DELETE operation.
-
-### Example - Bulk Insert
-{% highlight csharp %}
-var dt = new DataTable();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-
-// Easy to use
-bulk.BulkDelete(dt);
-{% endhighlight %}
-
-### Example - Bulk Insert Generic
-{% highlight csharp %}
-var list = new List();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-
-// Easy to use
-bulk.BulkDelete(customers);
-{% endhighlight %}
-
-### Performance Benchmarks
-
-| Operations | 1,000 Rows | 10,000 Rows | 100,000 Rows | 1,000,000 Rows |
-| :-------------- | -------------: | -------------: | -------------: | -------------: |
-| BulkDelete | 45 ms | 70 ms | 625 ms | 6,800 ms |
diff --git a/docs/pages/api/bulk-insert.md b/docs/pages/api/bulk-insert.md
deleted file mode 100644
index 993cf52..0000000
--- a/docs/pages/api/bulk-insert.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-layout: default
-title: Bulk Insert
-permalink: bulk-insert
----
-
-{% include template-h1.html %}
-
-## Bulk Insert
-Execute an INSERT operation.
-
-### Example - Bulk Insert
-{% highlight csharp %}
-var dt = new DataTable();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-
-// Easy to use
-bulk.BulkInsert(dt);
-{% endhighlight %}
-
-### Example - Bulk Insert Generic
-{% highlight csharp %}
-var list = new List();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-
-// Easy to use
-bulk.BulkInsert(customers);
-{% endhighlight %}
-
-### Performance Benchmarks
-
-| Operations | 1,000 Rows | 10,000 Rows | 100,000 Rows | 1,000,000 Rows |
-| :-------------- | -------------: | -------------: | -------------: | -------------: |
-| BulkInsert | 6 ms | 25 ms | 200 ms | 2,000 ms |
diff --git a/docs/pages/api/bulk-merge.md b/docs/pages/api/bulk-merge.md
deleted file mode 100644
index 71eef48..0000000
--- a/docs/pages/api/bulk-merge.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-layout: default
-title: Bulk Merge
-permalink: bulk-merge
----
-
-{% include template-h1.html %}
-
-## Bulk Merge
-Execute a MERGE/UPSERT operation. UPDATE existing rows matching the key, and INSERT new rows.
-
-### Example - Bulk Merge
-{% highlight csharp %}
-var dt = new DataTable();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-
-// Easy to use
-bulk.BulkMerge(dt);
-{% endhighlight %}
-
-### Example - Bulk Merge Generic
-{% highlight csharp %}
-var list = new List();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-
-// Easy to use
-bulk.BulkMerge(customers);
-{% endhighlight %}
-
-### Performance Benchmarks
-
-| Operations | 1,000 Rows | 10,000 Rows | 100,000 Rows | 1,000,000 Rows |
-| :-------------- | -------------: | -------------: | -------------: | -------------: |
-| BulkMerge | 65 ms | 160 ms | 1200 ms | 12,000 ms |
diff --git a/docs/pages/api/bulk-savechanges.md b/docs/pages/api/bulk-savechanges.md
deleted file mode 100644
index 1040b19..0000000
--- a/docs/pages/api/bulk-savechanges.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-layout: default
-title: Bulk SaveChanges
-permalink: bulk-savechanges
----
-
-{% include template-h1.html %}
-
-## Introduction
-
-Execute an INSERT/UPDATE/DELETE operation using the DataRowState of the DataTable.
-
-### Example - Bulk SaveChanges
-{% highlight csharp %}
-var dt = new DataTable();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-
-// Easy to use
-bulk.BulkSaveChanges(dt);
-{% endhighlight %}
diff --git a/docs/pages/api/bulk-synchronize.md b/docs/pages/api/bulk-synchronize.md
deleted file mode 100644
index 79498fb..0000000
--- a/docs/pages/api/bulk-synchronize.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-layout: default
-title: Bulk Synchronize
-permalink: bulk-synchronize
----
-
-{% include template-h1.html %}
-
-## Bulk Synchronize
-Execute a SYNCHRONIZE operation. UPDATE existing rows matching the key, INSERT new rows and DELETE records from the destination not existing in the source.
-
-### Example - Bulk Synchronize
-{% highlight csharp %}
-var dt = new DataTable();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-
-// Easy to use
-bulk.BulkSynchronize(dt);
-{% endhighlight %}
-
-### Example - Bulk Synchronize Generic
-{% highlight csharp %}
-var list = new List();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-
-// Easy to use
-bulk.BulkSynchronize(customers);
-{% endhighlight %}
-
-### Performance Benchmarks
-
-| Operations | 1,000 Rows | 10,000 Rows | 100,000 Rows | 1,000,000 Rows |
-| :-------------- | -------------: | -------------: | -------------: | -------------: |
-| BulkSynchronize | 65 ms | 160 ms | 1200 ms | 12,000 ms |
diff --git a/docs/pages/api/bulk-update.md b/docs/pages/api/bulk-update.md
deleted file mode 100644
index bc0aab0..0000000
--- a/docs/pages/api/bulk-update.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-layout: default
-title: Bulk Update
-permalink: bulk-update
----
-
-{% include template-h1.html %}
-
-## Bulk Update
-Execute an UPDATE operation.
-
-### Example - Bulk Update
-{% highlight csharp %}
-var dt = new DataTable();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-
-// Easy to use
-bulk.BulkUpdate(dt);
-{% endhighlight %}
-
-### Example - Bulk Update Generic
-{% highlight csharp %}
-var list = new List();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-
-// Easy to use
-bulk.BulkUpdate(customers);
-{% endhighlight %}
-
-### Performance Benchmarks
-
-| Operations | 1,000 Rows | 10,000 Rows | 100,000 Rows | 1,000,000 Rows |
-| :-------------- | -------------: | -------------: | -------------: | -------------: |
-| BulkUpdate | 50 ms | 80 ms | 575 ms | 6,500 ms |
diff --git a/docs/pages/api/bulkoperation-manager.md b/docs/pages/api/bulkoperation-manager.md
deleted file mode 100644
index d308083..0000000
--- a/docs/pages/api/bulkoperation-manager.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: default
-title: BulkOperation Manager
-permalink: bulkoperation-manager
----
-
-{% include template-h1.html %}
-
-_Coming Soon_
diff --git a/docs/pages/api/delete-from-query.md b/docs/pages/api/delete-from-query.md
deleted file mode 100644
index 7fbb3a8..0000000
--- a/docs/pages/api/delete-from-query.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-layout: default
-title: Delete from Query
-permalink: delete-from-query
----
-
-{% include template-h1.html %}
-
-## Delete From Query
-Execute a DELETE operation using a LINQ Query.
-
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-// DELETE all customers inactive for more than 2 years
-bulk.DeleteFromQuery(
- c => c.Where(x => x.LastLogin < DateTime.Now.AddYears(-2)));
-{% endhighlight %}
-
-### Performance Benchmarks
-
-| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities |
-| :-------------- | -------------: | -------------: | -------------: |
-| DeleteFromQuery | 1 ms | 1 ms | 1 ms |
-
-### Support
-- SQL Server 2008+
-- SQL Azure
diff --git a/docs/pages/api/options-audit.md b/docs/pages/api/options-audit.md
deleted file mode 100644
index 6cc4c0b..0000000
--- a/docs/pages/api/options-audit.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-layout: default
-title: Audit
-permalink: audit
----
-
-{% include template-h1.html %}
-
-## Audit Options
-- [UseAudit](#useaudit)
-
-## UseAudit
-Allow you to audit inserted/deleted rows from the database.
-
-- Default Value: False
-
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.UseAudit = true;
-
-bulk.BulkMerge(dt);
-
-var auditEntries = bulk.AuditEntries;
-{% endhighlight %}
diff --git a/docs/pages/api/options-batch.md b/docs/pages/api/options-batch.md
deleted file mode 100644
index 688e971..0000000
--- a/docs/pages/api/options-batch.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-layout: default
-title: Batch
-permalink: batch
----
-
-{% include template-h1.html %}
-
-## Batch Options
-- [BatchSize](#batchsize)
-- [BatchTimeout](#batchtimeout)
-- [BatchDelayInteval](#batchdelayinterval)
-
-## BatchSize
-Allow you to set the number of records to use in a batch.
-
-By example, if you insert 1000 entities, and you set a batch size of 100, then ten inserts will be performed.
-
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.BatchSize = 100;
-
-bulk.BulkMerge(dt);
-{% endhighlight %}
-
-## BatchTimeout
-Allow you to set the maximum of time elapsing for a batch before the command throws a timeout exception.
-
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.BatchTimeout = 180;
-
-bulk.BulkMerge(dt);
-{% endhighlight %}
-
-## BatchDelayInterval
-Allow you to set a delay between every batch.
-
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.BatchDelayInterval = 100;
-
-bulk.BulkMerge(dt);
-{% endhighlight %}
-
-
-> WARNING: Be careful, this options can often cause lock/deadlock within a transaction.
diff --git a/docs/pages/api/options-column-expression.md b/docs/pages/api/options-column-expression.md
deleted file mode 100644
index 3e3e463..0000000
--- a/docs/pages/api/options-column-expression.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: default
-title: Column Expression
-permalink: column-expression
----
-
-{% include template-h1.html %}
-
-## Column Expression Options
-- [ColumnInputExpression](#columninputexpression)
-- [ColumnKeyExpression](#columnkeyexpression)
-- [ColumnOutputExpression](#columnoutputexpression)
-- [ColumnSynchronizeDeleteKeySubsetExpression](#columnsynchronizedeletekeysubsetexpression)
-- [IgnoreOnMergeInsertExpression](#ignoreonmergeinsertexpression)
-- [IgnoreOnMergeUpdateExpression](#ignoreonmergeupdatexpression)
-
-_Coming Soon_
diff --git a/docs/pages/api/options-execute-event.md b/docs/pages/api/options-execute-event.md
deleted file mode 100644
index 61fe468..0000000
--- a/docs/pages/api/options-execute-event.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: default
-title: Execute Event
-permalink: execute-event
----
-
-{% include template-h1.html %}
-## Excecute Event Options
-- [BulkOperationExecuting](#bulkoperationexecuting)
-- [BulkOperationExecuted](#bulkoperationexecuted)
-
-## BulkOperationExecuting
-Allow you to change configuration before the bulk operation is executed.
-
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.BulkOperationExecuting = bulkOperation => { /* configuration */ };
-
-bulk.BulkMerge(dt);
-{% endhighlight %}
-
-## BulkOperationExecuted
-Allow you to change configuration after the bulk operation is executed.
-
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.BulkOperationExecuted = bulkOperation => { /* configuration */ };
-
-bulk.BulkMerge(dt);
-{% endhighlight %}
diff --git a/docs/pages/api/options-log.md b/docs/pages/api/options-log.md
deleted file mode 100644
index f48af10..0000000
--- a/docs/pages/api/options-log.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-layout: default
-title: Log
-permalink: log
----
-
-{% include template-h1.html %}
-## Log Options
-- [Log](#log)
-- [UseLogDump](#uselogdump)
-- [LogDump](#logdump)
-
-## Log
-Allow you to log some event happening in your database.
-
-### Example
-{% highlight csharp %}
-StringBuilder logger = new StringBuilder();
-var bulk = new BulkOperation(connection);
-
-bulk.Log += s => logger.AppendLine(s);
-
-bulk.BulkMerge(dt);
-{% endhighlight %}
-
-## UseLogDump
-Allow you to log in a string (LogDump) event happening in your database.
-
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.UseLogDump = true;
-
-bulk.BulkMerge(dt);
-
-var logDump = bulk.LogDump;
-{% endhighlight %}
-
-## LogDump
-Allow you to retrieve event happening in your database when UseLogDump is enabled.
-
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.UseLogDump = true;
-
-bulk.BulkMerge(dt);
-
-var logDump = bulk.LogDump;
-{% endhighlight %}
diff --git a/docs/pages/api/options-sql-server.md b/docs/pages/api/options-sql-server.md
deleted file mode 100644
index 5557d65..0000000
--- a/docs/pages/api/options-sql-server.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-layout: default
-title: SQL Server
-permalink: sql-server
----
-
-{% include template-h1.html %}
-## SQL Server Options
-- [SqlBulkCopyOptions](#sqlbulkcopyoptions)
-
-## SqlBulkCopyOptions
-Allow you to set the SqlBulkCopyOptions to use when a strategy with the SqlBulkCopy is selected.
-
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.SqlBulkCopyOptions = SqlBulkCopyOptions.Default | SqlBulkCopyOptions.TableLock;
-
-bulk.BulkMerge(dt);
-{% endhighlight %}
diff --git a/docs/pages/api/options-temporary-table.md b/docs/pages/api/options-temporary-table.md
deleted file mode 100644
index 6ef5c83..0000000
--- a/docs/pages/api/options-temporary-table.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-layout: default
-title: Temporary Table
-permalink: temporary-table
----
-
-{% include template-h1.html %}
-## Temporary Table Options
-- [TemporaryTableBatchByTable](#temporarytablebatchbytable)
-- [TemporaryTableInsertBatchSize](#temporarytableinsertbatchsize)
-- [TemporaryTableMinRecord](#temporarytableminrecord)
-- [TemporaryTableUseTableLock](#temporarytableusetablelock)
-
-
-
-Customize how and when to use a temporary table instead of inline SQL.
-
-**Properties:**
-## TemporaryTableBatchByTable
-Allow you to set the maximum number of batches a temporary table can contain.
-
-- Default Value: 0 (unlimited)
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.TemporaryTableBatchByTable = 5;
-
-bulk.BulkMerge(dt);
-{% endhighlight %}
-
-## TemporaryTableInsertBatchSize
-Allow you to set the number of record by batch to insert in a temporary table.
-
-- Default Value: 10,000
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.TemporaryTableInsertBatchSize = 1000;
-
-bulk.BulkMerge(dt);
-{% endhighlight %}
-
-## TemporaryTableMinRecord
-Allow you to set the minimum number of records before a temporary table strategy is used.
-
-- Default Value: 10
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.TemporaryTableMinRecord = 15;
-
-bulk.BulkMerge(dt);
-{% endhighlight %}
-
-## TemporaryTableUseTableLock
-Allow you to lock the temporary table while being populated.
-
-- Default Value: true
-
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.TemporaryTableUseTableLock = true;
-
-bulk.BulkMerge(dt);
-{% endhighlight %}
diff --git a/docs/pages/api/options-transient-error.md b/docs/pages/api/options-transient-error.md
deleted file mode 100644
index 15a4271..0000000
--- a/docs/pages/api/options-transient-error.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: default
-title: Transient Error
-permalink: transient-error
----
-
-{% include template-h1.html %}
-## Transient Error Options
-- [RetryCount](#retrycount)
-- [RetryInterval](#retryinterval)
-
-## RetryCount
-Allow you to set how many time the bulk operation should retry the operation when a transient error occurs.
-
-### Example
-
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.RetryCount = 3;
-
-bulk.BulkMerge(dt);
-{% endhighlight %}
-
-## RetryInterval
-Allow you to set how many time to wait before trying an operation again when a transient error occurs.
-
-### Example
-
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-bulk.RetryCount = 3;
-bulk.RetryInterval = new TimeSpan(100);
-
-bulk.BulkMerge(dt);
-{% endhighlight %}
diff --git a/docs/pages/api/update-from-query.md b/docs/pages/api/update-from-query.md
deleted file mode 100644
index de217a9..0000000
--- a/docs/pages/api/update-from-query.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-layout: default
-title: Update from Query
-permalink: update-from-query
----
-
-{% include template-h1.html %}
-
-## Update From Query
-Execute an INSERT operation.
-
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-// UPDATE all customers inactive for more than 2 years
-bulk.UpdateFromQuery(
- c => c.Where(x => x.Actif && x.LastLogin < DateTime.Now.AddYears(-2)),
- c => new Customer {Actif = false});
-{% endhighlight %}
-
-### Performance Benchmarks
-
-| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities |
-| :-------------- | -------------: | -------------: | -------------: |
-| UpdateFromQuery | 1 ms | 1 ms | 1 ms |
-
-### Support
-- SQL Server 2008+
-- SQL Azure
diff --git a/docs/pages/articles/articles.md b/docs/pages/articles/articles.md
deleted file mode 100644
index f7e6b5f..0000000
--- a/docs/pages/articles/articles.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: default
-title: Articles
-permalink: articles
----
-
-{% include template-h1.html %}
-
-## Articles
-
-
-{% for num in (0..site.data.pages.size) %}
- {% if site.data.pages[num].category == page.permalink and site.data.pages[num].url != page.permalink %}
-
diff --git a/docs/pages/articles/benchmark-pitfall.md b/docs/pages/articles/benchmark-pitfall.md
deleted file mode 100644
index 1ee9175..0000000
--- a/docs/pages/articles/benchmark-pitfall.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: default
-title: Benchmark Pitfall
-permalink: benchmark-pitfall
----
-
-{% include template-h1.html %}
-
-_Coming Soon_
diff --git a/docs/pages/articles/ignore-on-merge-insert-expression.md b/docs/pages/articles/ignore-on-merge-insert-expression.md
deleted file mode 100644
index f00a590..0000000
--- a/docs/pages/articles/ignore-on-merge-insert-expression.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: default
-title: Ignore on Merge Insert Expression
-permalink: ignore-on-merge-insert-expression
----
-
-{% include template-h1.html %}
-
-_Coming Soon_
diff --git a/docs/pages/articles/ignore-on-merge-update-expression.md b/docs/pages/articles/ignore-on-merge-update-expression.md
deleted file mode 100644
index 8a021e6..0000000
--- a/docs/pages/articles/ignore-on-merge-update-expression.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: default
-title: Ignore on Merge Update Expression
-permalink: ignore-on-merge-update-expression
----
-
-{% include template-h1.html %}
-
-_Coming Soon_
diff --git a/docs/pages/articles/input-expression.md b/docs/pages/articles/input-expression.md
deleted file mode 100644
index f12a674..0000000
--- a/docs/pages/articles/input-expression.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: default
-title: Input Expression
-permalink: input-expression
----
-
-{% include template-h1.html %}
-
-_Coming Soon_
diff --git a/docs/pages/articles/insert-if-not-exists.md b/docs/pages/articles/insert-if-not-exists.md
deleted file mode 100644
index 20e06e2..0000000
--- a/docs/pages/articles/insert-if-not-exists.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: default
-title: Insert IF NOT Exists
-permalink: insert-if-not-exists
----
-
-{% include template-h1.html %}
-
-_Coming Soon_
diff --git a/docs/pages/articles/insert-keep-identity.md b/docs/pages/articles/insert-keep-identity.md
deleted file mode 100644
index a92bcb2..0000000
--- a/docs/pages/articles/insert-keep-identity.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: default
-title: Insert Keep Identity
-permalink: insert-keep-identity
----
-
-{% include template-h1.html %}
-
-_Coming Soon_
diff --git a/docs/pages/articles/key-expression.md b/docs/pages/articles/key-expression.md
deleted file mode 100644
index 729fcfd..0000000
--- a/docs/pages/articles/key-expression.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: default
-title: Key Expression
-permalink: key-expression
----
-
-{% include template-h1.html %}
-
-_Coming Soon_
diff --git a/docs/pages/articles/output-expression.md b/docs/pages/articles/output-expression.md
deleted file mode 100644
index ce3cc0f..0000000
--- a/docs/pages/articles/output-expression.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: default
-title: Output Expression
-permalink: output-expression
----
-
-{% include template-h1.html %}
-
-_Coming Soon_
diff --git a/docs/pages/articles/synchronize-expression.md b/docs/pages/articles/synchronize-expression.md
deleted file mode 100644
index 037ec36..0000000
--- a/docs/pages/articles/synchronize-expression.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: default
-title: Synchronize Expression
-permalink: synchronize-expression
----
-
-{% include template-h1.html %}
-
-_Coming Soon_
diff --git a/docs/pages/articles/update-duplicate-key.md b/docs/pages/articles/update-duplicate-key.md
deleted file mode 100644
index 2142893..0000000
--- a/docs/pages/articles/update-duplicate-key.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: default
-title: Update Duplicate Key
-permalink: update-duplicate-key
----
-
-{% include template-h1.html %}
-
-_Coming Soon_
diff --git a/docs/pages/articles/update-key-value.md b/docs/pages/articles/update-key-value.md
deleted file mode 100644
index fb3e469..0000000
--- a/docs/pages/articles/update-key-value.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: default
-title: Update Key Value
-permalink: update-key-value
----
-
-{% include template-h1.html %}
-
-_Coming Soon_
diff --git a/docs/pages/faq/contact-us.md b/docs/pages/faq/contact-us.md
deleted file mode 100644
index f80f394..0000000
--- a/docs/pages/faq/contact-us.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-layout: default
-title: Contact us
-permalink: contact-us
----
-
-{% include template-h1.html %}
-
-## I have a question! What should I do?
-Contact us directly with your questions: info@zzzprojects.com _(recommended)_
-
-You can also use the [Issues Tracker](https://github.com/zzzprojects/EntityFramework-Extensions/issues).
-
-## I think I've found a bug! What should I do?
-Contact us directly with your bug: info@zzzprojects.com _(recommended)_
-
-You can also use the [Issues Tracker](https://github.com/zzzprojects/EntityFramework-Extensions/issues).
-
-## I think I've found a feature! What should I do?
-Contact us directly with your feature: info@zzzprojects.com _(recommended)_
-
-You can also use the project [Issues Tracker](https://github.com/zzzprojects/EntityFramework-Extensions/issues).
-
-## I think you forget about my request! What should I do?
-We usually get/answer over 20 requests by day. Unfortunately, it's happen!
-
-Just contact us back again, and we will make sure we don't miss it a second time!
diff --git a/docs/pages/faq/faq-general.md b/docs/pages/faq/faq-general.md
deleted file mode 100644
index 0cd51ac..0000000
--- a/docs/pages/faq/faq-general.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-layout: default
-title: FAQ General
-permalink: faq-general
----
-
-{% include template-h1.html %}
-
-## Which Payment method do you support?
-We support the following payment method:
-
-- PayPal
-- Check
-- Bank Transfer
-
-## Can I purchase this product from a Reseller?
-Yes, just let him know to contact us.
-
-## What's your average SLA response and resolution times?
-We try to provide an outstanding support service.
-
-We normally answer very fast, often within one hour.
-
-Most fixes is resolved within one business day.
-
-## Do you support EF Core
-We do not yet. We are currently re-writing the library to support it.
diff --git a/docs/pages/faq/faq-installation.md b/docs/pages/faq/faq-installation.md
deleted file mode 100644
index 89da575..0000000
--- a/docs/pages/faq/faq-installation.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-layout: default
-title: Installation
-permalink: faq-installation
----
-
-{% include template-h1.html %}
-
-## How to I Install your product?
-It simple, you download it from NuGet and add it to your project.
-
-More Info: [Tutorials - Installing](installing)
-
-## I have installed your product, but I don't see your extensions method
-- Make sure to install it in the right project
-- Make sure your project support .NET40 or better
diff --git a/docs/pages/faq/faq-license.md b/docs/pages/faq/faq-license.md
deleted file mode 100644
index 1bfdbb5..0000000
--- a/docs/pages/faq/faq-license.md
+++ /dev/null
@@ -1,80 +0,0 @@
----
-layout: default
-title: License
-permalink: faq-license
----
-
-{% include template-h1.html %}
-
-## Developer Seat
-
-### What's a developer seat?
-A developer seat is a developer working for your company and developing code directly with our product.
-
-You don't have to purchase developer seat for front-end developer or back-end developer which doesn't use our product API.
-
-Since you buy developer seat, you can develop an unlimited amount of projects within your company.
-
-### What's the cost for additional developer seat?
-The cost for additional developer seat is usually extremely low. We want to make sure our library is accessible for small and large company.
-
-### Do developer seat are transferable?
-Yes, a developer seat can be transferred to any employee within your company.
-
-## Perpertual License
-
-### What's a perpetual license?
-A perpetual license allows you to use the licensed product indefinitely.
-
-### Even when my Support & Upgrade is expired?
-Yes.
-
-## Support & Upgdrade
-
-### My support & upgrade have expired! What will happen?
-Don't worry. Your product continue to work forever!
-
-You can still download and use any version released before the support & upgrade expiration date.
-
-You will need to renew to use version released after the support & upgrade expiration date.
-
-### How do I renew my License?
-We usually start to send renewal mail two months before the support & upgrade expiration date.
-
-If you didn't receive such email, you could contact us directly: info@zzzprojects.com
-
-### Can I have renewal discount?
-We provide a 25% discount to early renewal. So anyone renewing before the support & upgrade expiration date automatically get a renewal discount.
-
-### I'm too late for early renewal discount! What can I do?
-If you are few day late, we still provide early renewal discount.
-
-However, if you have few months late, you will need to purchase the library again.
-
-The best way to find out if you still have access to early renewal discount is by contacting us: info@zzzprojects.com
-
-### Why should I renew?
-Renewing your support & upgrade give the following benefits:
-
-- Major version releases and new product features
-- Fast support by mail
-- Protection against price increases during the maintenance term
-
-## Royalty Free
-
-### Can I install Entity Framework Extensions on Client Machine?
-Yes, the product is royalty free.
-
-That mean, you paid for developer seat, but customer using your product doesn't have to pay.
-
-### Is Entity Framework Extensions Royalty Free?
-Yes, the product is royalty free.
-
-This mean, you can develop a project and install it on thousands of clients.
-
-You paid for developer seat within your company.
-
-Some standard royalty free limitations:
-
-- You can sell a similar product and claim it's yours.
-- If your customer has access to your source code and develops using our API, they will have to purchase a license.
diff --git a/docs/pages/faq/faq.md b/docs/pages/faq/faq.md
deleted file mode 100644
index 02e2ad1..0000000
--- a/docs/pages/faq/faq.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: default
-title: FAQ
-permalink: faq
----
-
-{% include template-h1.html %}
-
-## FAQ
-
-
-{% for num in (0..site.data.pages.size) %}
- {% if site.data.pages[num].category == page.permalink and site.data.pages[num].url != page.permalink %}
-
diff --git a/docs/pages/faq/issue-tracker.md b/docs/pages/faq/issue-tracker.md
deleted file mode 100644
index b1962b9..0000000
--- a/docs/pages/faq/issue-tracker.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: default
-title: Issue Tracker
-permalink: issue-tracker
----
-
-{% include template-h1.html %}
-
-## Where is your Issue Tracker?
-
-While we prefer to be contacted directly: info@zzzprojects.com
-
-We understand some people prefer to have an online issue tracker to follow and comment their issues.
-
-You can create issue here:
-
-- [Issue Tracker](https://github.com/zzzprojects/EntityFramework-Extensions/issues)
diff --git a/docs/pages/faq/trial.md b/docs/pages/faq/trial.md
deleted file mode 100644
index 8c73d61..0000000
--- a/docs/pages/faq/trial.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-layout: default
-title: Trial
-permalink: trial
----
-
-{% include template-h1.html %}
-
-
-Oops! Your trial has expired.
-
-### How can I extend my trial?
-You can extend your trial for several months by downloading the latest version at the beginning of every month.
-
-
-
- Download
-
-
-
-### Where is the free version?
-There is no free version.
-
-### How can I purchase a license?
-A perpetual license can be purchased from here: Buy
\ No newline at end of file
diff --git a/docs/pages/troubleshooting/md5-exception.md b/docs/pages/troubleshooting/md5-exception.md
deleted file mode 100644
index f15e65f..0000000
--- a/docs/pages/troubleshooting/md5-exception.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-layout: default
-title: MD5 Exception
-permalink: md5-exception
----
-
-{% include template-h1.html %}
-
-## Problem
-
-You execute a method from the Entity Framework Extensions library, and the following error is thrown:
-
-{% include template-exception.html message='This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.' %}
-
-## Solution
-
-### Cause
-
-The default algorithm to validate the license key & name is not supported with FIPS enabled.
-
-### Fix
-
-#### Ask for a compatible key
-
-Contact us and we will send you a new key supporting FIPS: {% include infozzzprojects-email.html %}
-
-Why don’t we generated key compatible with FIPS by default? Because it will not be supported for a client machine with Windows XP or below.
-
-#### Disable FIPS
-
-Article: [Disable FIPS](http://docs.trendmicro.com/all/ent/sc/v3.0/en-US/cmcolh/t_fips.html){:target="_blank"}
diff --git a/docs/pages/troubleshooting/trial-period-expired-exception.md b/docs/pages/troubleshooting/trial-period-expired-exception.md
deleted file mode 100644
index 7c9780e..0000000
--- a/docs/pages/troubleshooting/trial-period-expired-exception.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: default
-title: Trial Period Expired Exception
-permalink: trial-period-expired-exception
----
-
-{% include template-h1.html %}
-
-## Problem
-
-You execute a method from the Entity Framework Extensions library, and the following error is thrown:
-
-{% include template-exception.html message='ERROR_005: The monthly trial period is expired. You can extend your trial by downloading the latest version. You can also purchase a perpetual license on our website. If you already own this license, this error only appears if the license has not been found, you can find additional information on our troubleshooting section (http://entityframework-extensions.net/troubleshooting). Contact our support team for more details: info@zzzprojects.com' %}
-
-## Solution
-
-### Cause
-
-- You are currently evaluating the library and the trial period is expired.
-- You have purchased the license but didn't register it correctly.
-
-### Fix
-
-#### Trial Period Expired
-
-You can extend your trial by downloading the latest version: [Upgrading](http://entityframework-extensions.net/upgrading)
-
-The latest version always contains a trial for the current month to allow a company to evaluate our library for several months.
-
-#### License Badly Registered
-
-Make sure to follow all recommendation about how to setup your license: [Licensing](http://entityframework-extensions.net/licensing)
-
-Otherwise contact us: {% include infozzzprojects-email.html %}
diff --git a/docs/pages/troubleshooting/troubleshooting.md b/docs/pages/troubleshooting/troubleshooting.md
deleted file mode 100644
index 3962bd3..0000000
--- a/docs/pages/troubleshooting/troubleshooting.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: default
-title: Troubleshooting
-permalink: troubleshooting
----
-
-{% include template-h1.html %}
-
-## Troubleshooting
-
-
-{% for num in (0..site.data.pages.size) %}
- {% if site.data.pages[num].category == page.permalink and site.data.pages[num].url != page.permalink %}
-
diff --git a/docs/pages/tutorials/installing.md b/docs/pages/tutorials/installing.md
deleted file mode 100644
index 00a525d..0000000
--- a/docs/pages/tutorials/installing.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-layout: default
-title: Installing
-permalink: installing
----
-
-{% include template-h1.html %}
-
-## Installing
-Is it the first time you use our Library?
-
-Don't worry. People love our library because it's so easy to use.
-
-
-## Step 1 - NuGet Download
-
-.NET Bulk Operations library is only available through NuGet
-
-
-
-
-> PM> Install-Package Z.BulkOperations
-
-## Step 2 - Have Fun!
diff --git a/docs/pages/tutorials/licensing.md b/docs/pages/tutorials/licensing.md
deleted file mode 100644
index 6eaf418..0000000
--- a/docs/pages/tutorials/licensing.md
+++ /dev/null
@@ -1,67 +0,0 @@
----
-layout: default
-title: Licensing
-permalink: licensing
----
-
-{% include template-h1.html %}
-
-## Evaluation Period
-You can evaluate our library for several months before purchasing it.
-
-The trial period stops at the end of the month. When you receive a license expiration error, download the latest version which will automatically extend your trial period.
-
-You can also purchase the library [here](http://bulk-operations.net/#pricing)
-
-Upon purchase, you will receive a license name and a license key.
-
-## Setup License from config file
-The license name and key can be directly added in the app.config or web.config file in the appSettings section.
-
-{% include template-example.html %}
-{% highlight csharp %}
-
-
-
-
-{% endhighlight %}
-
-## Setup License from code
-You can also set the license name and key directly in the code.
-
-{% include template-example.html %}
-{% highlight csharp %}
-// using Z.BulkOperations; // Don't forget to include this.
-
-string licenseName = //... PRO license name
-string licenseKey = //... PRO license key
-
-Z.BulkOperations.LicenseManager.AddLicense(licenseName, licenseKey);
-{% endhighlight %}
-
-### Recommendation
-- Use the config file to store your license name and license key.
-- **Web App:** Use Application_Start in global.asax to activate your license.
-- **WinForm App:** Use the main thread method to activate your license.
-- **Win Service:** Use the OnStart method to activate your license
-
-> The AddLicense must be set before the first call to the library. Otherwise, you will start the evaluation period
-
-## How can I check if my license is valid?
-The validate method allow you to know whether your license is valid or not.
-{% include template-example.html %}
-{% highlight csharp %}
-// CHECK for default provider (SQL Server)
-string licenseErrorMessage;
-if (!Z.BulkOperations.LicenseManager.LicenseManager.ValidateLicense(out licenseErrorMessage))
-{
- throw new Exception(licenseErrorMessage);
-}
-
-// CHECK for a specific provider
-string licenseErrorMessage;
-if (!Z.BulkOperations.LicenseManager.LicenseManager.ValidateLicense(out licenseErrorMessage, ProviderType.MySql))
-{
- throw new Exception(licenseErrorMessage);
-}
-{% endhighlight %}
diff --git a/docs/pages/tutorials/overview.md b/docs/pages/tutorials/overview.md
deleted file mode 100644
index 4b648f7..0000000
--- a/docs/pages/tutorials/overview.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-layout: default
-title: Overview
-permalink: overview
----
-
-{% include template-h1.html %}
-
-## What's Bulk Operations library?
-
-Like SqlBulkCopy, it allows you to perform very fast insertion in an SQL Server.
-
-Unlike SqlBulkCopy, it supports all kind of operations:
-
-- Bulk Insert
-- Bulk Update
-- Bulk Delete
-- Bulk Merge
-- Bulk SaveChanges
-- Bulk Synchronize
-
-And many providers:
-
-- SQL Server 2008+
-- SQL Azure
-- SQL Compact
-- Oracle
-- MySQL
-- PostgreSQL
-- SQLite
-
-It’s easy to use, and easy to customize.
-
-{% include template-example.html %}
-
-{% highlight csharp %}
-// Easy to use
-var bulk = new BulkOperation(connection);
-bulk.BulkInsert(dt);
-bulk.BulkUpdate(dt);
-bulk.BulkDelete(dt);
-bulk.BulkMerge(dt);
-
-// Easy to customize
-var bulk = new BulkOperation(connection);
-bulk.BatchSize = 1000;
-bulk.ColumnInputExpression = c => new { c.Name, c.FirstName };
-bulk.ColumnOutputExpression = c => c.CustomerID;
-bulk.ColumnPrimaryKeyExpression = c => c.Code;
-bulk.BulkMerge(customers);
-{% endhighlight %}
-
-### Is it that simple?
-
-Yes,
-
-That’s why people fall in love so quickly with our library.
-
-### Who use it?
-
-Already **thousands** of companies of all sizes and kinds use it:
-
-- From start-up company with one developer
-- To fortune 100 companies with hundreds of developers
-
-Are you still not using it? Give it one try, and you will understand why they choose our library.
-
-Under the hood, some of our libraries also use it:
-
-- [Entity Framework Extensions](http://entityframework-extensions.net/)
-- [Dapper Plus](http://dapper-plus.net/)
diff --git a/docs/pages/tutorials/requirements.md b/docs/pages/tutorials/requirements.md
deleted file mode 100644
index eb43d63..0000000
--- a/docs/pages/tutorials/requirements.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-layout: default
-title: Requirements
-permalink: requirements
----
-
-{% include template-h1.html %}
-
-## Requirements
-
-### .NET Framework Version
-
-- .NET Framework 4.0 or greater
-
-### Database Provider
-
-- SQL Server 2008+
-- SQL Azure
-- SQL Compact
-- Oracle
-- MySQL
-- PostgreSQL
-- SQLite
-
-### Note
-
-- .NET Core is under development
diff --git a/docs/pages/tutorials/tutorial-bulk-generic-methods.md b/docs/pages/tutorials/tutorial-bulk-generic-methods.md
deleted file mode 100644
index 4d894fb..0000000
--- a/docs/pages/tutorials/tutorial-bulk-generic-methods.md
+++ /dev/null
@@ -1,50 +0,0 @@
----
-layout: default
-title: Bulk Generic Methods
-permalink: tutorial-bulk-generic-methods
----
-
-{% include template-h1.html %}
-
-## Introduction
-Bulk Generic Methods allow you to work with strongly type expression.
-
-| Name | Description |
-| :-------------- | :------------- |
-| BulkInsert | Execute an INSERT operation. |
-| BulkUpdate | Execute an UPDATE operation. |
-| BulkDelete | Execute a DELETE operation. |
-| BulkMerge | Execute a MERGE/UPSERT operation. UPDATE existing rows matching the key, and INSERT new rows. |
-| BulkSynchronize | Execute a SYNCHRONIZE operation. UPDATE existing rows matching the key, INSERT new rows and DELETE records from the destination not existing in the source. |
-
-### Example
-
-{% highlight csharp %}
-var list = new List();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-bulk.ColumnInputExpression = c => new { c.Name, c.FirstName };
-bulk.ColumnOutputExpression = c => c.CustomerID;
-bulk.ColumnPrimaryKeyExpression = c => c.Code;
-
-// Easy to use
-bulk.BulkInsert(customers);
-bulk.BulkUpdate(customers);
-bulk.BulkDelete(customers);
-bulk.BulkMerge(customers);
-
-{% endhighlight %}
-
-### Performance Benchmark
-
-| Operations | 1,000 Rows | 10,000 Rows | 100,000 Rows | 1,000,000 Rows |
-| :-------------- | -------------: | -------------: | -------------: | -------------: |
-| BulkInsert | 6 ms | 25 ms | 200 ms | 2,000 ms |
-| BulkUpdate | 50 ms | 80 ms | 575 ms | 6,500 ms |
-| BulkDelete | 45 ms | 70 ms | 625 ms | 6,800 ms |
-| BulkMerge | 65 ms | 160 ms | 1200 ms | 12,000 ms |
-
diff --git a/docs/pages/tutorials/tutorial-bulk-methods.md b/docs/pages/tutorials/tutorial-bulk-methods.md
deleted file mode 100644
index dd64adc..0000000
--- a/docs/pages/tutorials/tutorial-bulk-methods.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-layout: default
-title: Bulk Methods
-permalink: tutorial-bulk-methods
----
-
-{% include template-h1.html %}
-
-## Introduction
-The .NET Bulk Operations library allow you to perform all operations in your database.
-
-| Name | Description |
-| :-------------- | :------------- |
-| BulkInsert | Execute an INSERT operation. |
-| BulkUpdate | Execute an UPDATE operation. |
-| BulkDelete | Execute a DELETE operation. |
-| BulkMerge | Execute a MERGE/UPSERT operation. UPDATE existing rows matching the key, and INSERT new rows. |
-| BulkSaveChanges | Execute an INSERT/UPDATE/DELETE operation using the DataRowState of the DataTable. |
-| BulkSynchronize | Execute a SYNCHRONIZE operation. UPDATE existing rows matching the key, INSERT new rows and DELETE records from the destination not existing in the source. |
-
-### Example
-
-{% highlight csharp %}
-var dt = new DataTable();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-
-// Easy to use
-bulk.BulkInsert(dt);
-bulk.BulkUpdate(dt);
-bulk.BulkDelete(dt);
-bulk.BulkMerge(dt);
-
-{% endhighlight %}
-
-### Performance Benchmark
-
-| Operations | 1,000 Rows | 10,000 Rows | 100,000 Rows | 1,000,000 Rows |
-| :-------------- | -------------: | -------------: | -------------: | -------------: |
-| BulkInsert | 6 ms | 25 ms | 200 ms | 2,000 ms |
-| BulkUpdate | 50 ms | 80 ms | 575 ms | 6,500 ms |
-| BulkDelete | 45 ms | 70 ms | 625 ms | 6,800 ms |
-| BulkMerge | 65 ms | 160 ms | 1200 ms | 12,000 ms |
diff --git a/docs/pages/tutorials/tutorial-from-query-methods.md b/docs/pages/tutorials/tutorial-from-query-methods.md
deleted file mode 100644
index a457a99..0000000
--- a/docs/pages/tutorials/tutorial-from-query-methods.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-layout: default
-title: From Query Methods
-permalink: tutorial-from-query-methods
----
-
-{% include template-h1.html %}
-
-## Introduction
-FromQuery operations allow you to use LINQ Query to execute an operation directly in the database
-
-| Name | Description |
-| :-------------- | :------------- |
-| DeleteFromQuery | Execute a DELETE operation using a LINQ Query. |
-| UpdateFromQuery | Execute an UPDATE operation using a LINQ Query. |
-
-
-
-### Example
-{% highlight csharp %}
-var bulk = new BulkOperation(connection);
-
-// DELETE all customers inactive for more than 2 years
-bulk.DeleteFromQuery(
- c => c.Where(x => x.LastLogin < DateTime.Now.AddYears(-2)));
-
-// UPDATE all customers inactive for more than 2 years
-bulk.UpdateFromQuery(
- c => c.Where(x => x.Actif && x.LastLogin < DateTime.Now.AddYears(-2)),
- c => new Customer {Actif = false});
-{% endhighlight %}
-
-
-### Performance Benchmarks
-
-| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities |
-| :-------------- | -------------: | -------------: | -------------: |
-| DeleteFromQuery | 1 ms | 1 ms | 1 ms |
-| UpdateFromQuery | 1 ms | 1 ms | 1 ms |
-
-### Support
-- SQL Server 2008+
-- SQL Azure
diff --git a/docs/pages/tutorials/upgrading.md b/docs/pages/tutorials/upgrading.md
deleted file mode 100644
index d879477..0000000
--- a/docs/pages/tutorials/upgrading.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-layout: default
-title: Upgrading
-permalink: upgrading
----
-
-{% include template-h1.html %}
-
-## Upgrading
-
-All our releases are normally backward compatible to make it very easy for you to upgrade.
-
-## Step 1 - Before Upgrading
-Before upgrading:
-- Make sure to read [release notes](https://github.com/zzzprojects/Bulk-Operations/releases)
-- **NEVER** upgrade to production without testing in a development environment first
-
-## Step 2 - NuGet Download
-
-.NET Bulk Operations library is only available through NuGet
-
-
-
-
-> PM> Install-Package Z.BulkOperations
diff --git a/docs/robots.txt b/docs/robots.txt
deleted file mode 100644
index eede9dd..0000000
--- a/docs/robots.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-# www.robotstxt.org/
-
-# Allow crawling of all content
-User-agent: *
-Disallow:
-Sitemap: http://bulk-operations.net/sitemap.xml
diff --git a/docs2/pages/_topnav.md b/docs2/pages/_topnav.md
deleted file mode 100644
index 20e1a3d..0000000
--- a/docs2/pages/_topnav.md
+++ /dev/null
@@ -1,5 +0,0 @@
-- [Getting Started](getting-started/overview.md)
-- Documentation
- - [Documentation](documentations/bulk-insert.md)
- - [Release Notes](https://github.com/zzzprojects/Bulk-Operations/releases)
-- [Online Examples](/online-examples)
diff --git a/docs2/pages/articles/articles.md b/docs2/pages/articles/articles.md
deleted file mode 100644
index 52b9bf3..0000000
--- a/docs2/pages/articles/articles.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Articles
-
-## Articles
-
-
-{% for num in (0..site.data.pages.size) %}
- {% if site.data.pages[num].category == page.permalink and site.data.pages[num].url != page.permalink %}
-
-{% for num in (0..site.data.pages.size) %}
- {% if site.data.pages[num].category == page.permalink and site.data.pages[num].url != page.permalink %}
-
diff --git a/docs2/pages/documentations/bulk-delete.md b/docs2/pages/documentations/bulk-delete.md
deleted file mode 100644
index e365700..0000000
--- a/docs2/pages/documentations/bulk-delete.md
+++ /dev/null
@@ -1,116 +0,0 @@
-# Bulk Delete
-
-## Description
-
-The `BulkDelete` method let you delete a large number of entities in your database.
-
-```csharp
-// Easy to use
-bulk.DestinationTableName = "Customers";
-bulk.BulkDelete(customers);
-
-// Easy to customize
-bulk.DestinationTableName = "Customers";
-bulk.BatchSize = 100;
-bulk.BulkDelete(customers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/XgKaqz)
-
-[Try it (Entity)](https://dotnetfiddle.net/O3jY32)
-
-
-### Performance View
-
-| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities |
-| :-------------- | -------------: | -------------: | -------------: |
-| BulkDelete | 50 ms | 55 ms | 75 ms |
-
-
-[Try it (DataTable)](https://dotnetfiddle.net/TknFpT)
-
-[Try it (Entity)](https://dotnetfiddle.net/CzSZx8)
-
-> HINT: A lot of factors might affect the benchmark time such as index, column type, latency, throttling, etc.
-
-### Scenarios
-The `BulkDelete` method is **fast** but also **flexible** to let you handle various scenarios such as:
-
-- [Delete with custom key](#delete-with-custom-key)
-- [More scenarios](#more-scenarios)
-
-### Advantages
-- Easy to use
-- Flexible
-- Increase performance
-- Increase application responsiveness
-
-## Getting Started
-
-### Bulk Delete
-The `BulkDelete` and `BulkDeleteAync` methods your let you delete a large number of entities in your database.
-
-```csharp
-bulk.BulkDelete(customers);
-
-bulk.BulkDeleteAsync(customers, cancellationToken);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/Ss93gv)
-
-[Try it (Entity)](https://dotnetfiddle.net/p8dt0G)
-
-### Bulk Delete with options
-The `options` parameter let you use a lambda expression to customize the way entities are deleted.
-
-```csharp
-bulk.BatchSize = 100;
-bulk.BulkDelete(customers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/NQlmua)
-
-[Try it (Entity)](https://dotnetfiddle.net/KLFfCw)
-
-## Real Life Scenarios
-
-### Delete with custom key
-You want to delete entities, but you don't have the primary key. The `ColumnPrimaryKeyExpression` let you use as a key any property or combination of properties.
-
-```csharp
-bulk.AutoMapKeyName = "Code";
-bulk.BulkDelete(dtCustomers.AsEnumerable().Take(2));
-```
-[Try it (DataTable)](https://dotnetfiddle.net/XKUBto)
-
-```csharp
-bulk.AutoMapKeyExpression = customer => customer.Code;
-bulk.BulkDelete(customers.Take(2));
-```
-[Try it (Entity)](https://dotnetfiddle.net/yc5tqc)
-
-### More scenarios
-Hundred of scenarios has been solved and are now supported.
-
-The best way to ask for a special request or to find out if a solution for your scenario already exists is by contacting us:
-info@zzzprojects.com
-
-## Documentation
-
-### BulkDelete
-
-###### Methods
-
-| Name | Description | Example (DataTable) | Example (Entity) |
-| :--- | :---------- | :------ | :------ |
-| `BulkDelete(items)` | Bulk delete entities in your database. | [Try it](https://dotnetfiddle.net/srOJJ8) | [Try it](https://dotnetfiddle.net/a6Txdy) |
-| `BulkDeleteAsync(items)` | Bulk delete entities asynchronously in your database. | | |
-| `BulkDeleteAsync(items, cancellationToken)` | Bulk delete entities asynchronously in your database. | | |
-
-###### Options
-More options can be found here:
-
-- [Audit](https://bulk-operations.net/audit)
-- [Batch](https://bulk-operations.net/batch)
-- [Execute Event](https://bulk-operations.net/execute-event)
-- [Log](https://bulk-operations.net/log)
-- [Temporary Table](https://bulk-operations.net/temporary-table)
-- [Transient Error](https://bulk-operations.net/transient-error)
-- [SQL Server](https://bulk-operations.net/sql-server)
diff --git a/docs2/pages/documentations/bulk-insert.md b/docs2/pages/documentations/bulk-insert.md
deleted file mode 100644
index e3d2ae1..0000000
--- a/docs2/pages/documentations/bulk-insert.md
+++ /dev/null
@@ -1,189 +0,0 @@
-# Bulk Insert
-
-## Description
-
-The `BulkInsert` method let you insert a large number of entities in your database.
-
-```csharp
-// Easy to use
-bulk.DestinationTableName = "Customers";
-bulk.BulkInsert(customers);
-
-// Easy to customize
-bulk.DestinationTableName = "Customers";
-bulk.InsertIfNotExists = true;
-bulk.AutoMapOutputIdentity = true;
-bulk.BulkInsert(customers);
-```
-
-[Try it (DataTable)](https://dotnetfiddle.net/UtvblA)
-
-[Try it (Entity)](https://dotnetfiddle.net/Nm4Ndu)
-
-
-### Performance View
-
-| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities |
-| :-------------- | -------------: | -------------: | -------------: |
-| BulkInsert | 50 ms | 55 ms | 75 ms |
-
-[Try this benchmark online (DataTable)](https://dotnetfiddle.net/op4qjQ)
-
-[Try this benchmark online (Entity)](https://dotnetfiddle.net/cHdVFF)
-
-> HINT: A lot of factors might affect the benchmark time such as index, column type, latency, throttling, etc.
-
-### Scenarios
-The `BulkInsert` method is **fast** but also **flexible** to let you handle various scenarios such as:
-- [Insert and keep identity value](#insert-and-keep-identity-value)
-- [Insert and include/exclude properties](#insert-and-includeexclude-properties)
-- [Insert only if the entity not already exists](#insert-only-if-the-entity-not-already-exists)
-- [Insert with returning identity value](#insert-with-returning-identity-value)
-- [More scenarios](#more-scenarios)
-
-### Advantages
-- Easy to use
-- Flexible
-- Increase performance
-- Increase application responsiveness
-
-## Getting Started
-
-### Bulk Insert
-The `BulkInsert` and `BulkInsertAync` let you insert a large number of entities in your database.
-
-```csharp
-bulk.BulkInsert(customers);
-
-bulk.BulkInsertAsync(customers, cancellationToken);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/V7BSkx)
-
-[Try it (Entity)](https://dotnetfiddle.net/ltMk9u)
-
-### Bulk Insert with options
-The `options` parameter let you customize the way entities are inserted.
-
-```csharp
-bulk.BatchSize = 100;
-bulk.BulkInsert(customers);
-
-bulk.PrimaryKeyExpression = customer => customer.Code;
-bulk.InsertIfNotExists = true;
-bulk.BulkInsert(customers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/C8kAfL)
-
-[Try it (Entity)](https://dotnetfiddle.net/YzSPKX)
-
-## Real Life Scenarios
-
-### Insert and keep identity value
-Your entity has an identity property, but you want to force to insert a specific value instead. The `InsertKeepIdentity` option allows you to keep the identity value of your entity.
-
-```csharp
-bulk.DestinationTableName = "Customers";
-bulk.InsertKeepIdentity = true;
-bulk.BulkInsert(customers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/GwWGpY)
-
-[Try it (Entity)](https://dotnetfiddle.net/04NuC3)
-
-### Insert and include/exclude properties
-
-You want to insert your entities but only for specific properties.
-
-- `ColumnInputExpression`: This option let you choose which properties to map.
-- `IgnoreOnInsertExpression`: This option let you ignore properties that are auto-mapped.
-
-```csharp
-bulk.ColumnInputExpression = c => new { c.CustomerID, c.Name};
-bulk.BulkInsert(customers);
-
-bulk.IgnoreOnInsertExpression = c => new { c.ColumnToIgnore };
-bulk.BulkInsert(customers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/xS44Il)
-
-[Try it (Entity)](https://dotnetfiddle.net/obTRqp)
-
-### Insert only if the entity not already exists
-You want to insert entities but only those that don't already exist in the database.
-
-- `InsertIfNotExists`: This option let you insert only entity that doesn't already exists.
-- `PrimaryKeyExpression`: This option let you customize the key to use to check if the entity already exists or not. This option disable the Auto Mapping.
-- `AutoMapKeyExpression`: This option let you customize the key with an expression and keep the Auto Mapping.
-- `AutoMapKeyName`: This option let you customize the key by names and keep the Auto Mapping.
-
-```csharp
-bulk.InsertIfNotExists = true;
-bulk.AutoMapKeyExpression = c => c.Code;
-bulk.BulkInsert(customers);
-```
-[Try it (Entity)](https://dotnetfiddle.net/DLMhLv)
-
-```csharp
-bulk.InsertIfNotExists = true;
-bulk.AutoMapKeyName = "Code";
-bulk.BulkInsert(customers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/waYK0E)
-
-
-### Insert related child entities
-You want to insert related child entities.
-
-```csharp
-bulk.AutoMapOutputIdentity = true;
-bulk.BulkInsert(invoices);
-
-// SET foreign key value
-invoices.ForEach(x => x.Items.ForEach(y => y.InvoiceID = x.InvoiceID));
-bulk.BulkInsert(invoices.SelectMany(x => x.Items).ToList());
-```
-[Try it (Entity)](https://dotnetfiddle.net/9REv9u)
-
-[Try it (DataTable)](https://dotnetfiddle.net/zDdjQm)
-
-### Insert with returning identity value
-By default, the `BulkInsert` method doesn't returns the identity when inserting.
-
-You can return the identity by specifying it should be returned.
-
-```csharp
-bulk.AutoMapOutputIdentity = true;
-bulk.BulkInsert(customers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/g5pSS1)
-
-[Try it (Entity)](https://dotnetfiddle.net/klt6MY)
-
-### More scenarios
-Hundred of scenarios has been solved and are now supported.
-
-The best way to ask for a special request or to find out if a solution for your scenario already exists is by contacting us:
-info@zzzprojects.com
-
-## Documentation
-
-### BulkInsert
-
-###### Methods
-
-| Name | Description | Example (DataTable) | Example (Entity) |
-| :--- | :---------- | :------ | :------ |
-| `BulkInsert(items)` | Bulk insert entities in your database. | [Try it](https://dotnetfiddle.net/ikjsmq) | [Try it](https://dotnetfiddle.net/oz7CCC) |
-| `BulkInsertAsync(items)` | Bulk insert entities asynchronously in your database. | |
-| `BulkInsertAsync(items, cancellationToken)` | Bulk insert entities asynchronously in your database. | |
-
-###### Options
-More options can be found here:
-
-- [Audit](https://bulk-operations.net/audit)
-- [Batch](https://bulk-operations.net/batch)
-- [Execute Event](https://bulk-operations.net/execute-event)
-- [Log](https://bulk-operations.net/log)
-- [Temporary Table](https://bulk-operations.net/temporary-table)
-- [Transient Error](https://bulk-operations.net/transient-error)
-- [SQL Server](https://bulk-operations.net/sql-server)
diff --git a/docs2/pages/documentations/bulk-merge.md b/docs2/pages/documentations/bulk-merge.md
deleted file mode 100644
index 936fbb0..0000000
--- a/docs2/pages/documentations/bulk-merge.md
+++ /dev/null
@@ -1,182 +0,0 @@
-# Bulk Merge
-
-## Description
-
-The `BulkMerge` method let you merge (insert or update/Upsert) a large number of entities in your database.
-
-```csharp
-// Easy to use
-bulk.DestinationTableName = "Customers";
-bulk.BulkMerge(customers);
-
-// Easy to customize
-bulk.DestinationTableName = "Customers";
-bulk.BatchSize = 100;
-bulk.AutoMapOutputIdentity = true;
-bulk.BulkMerge(customers);
-```
-[Try it (Entity)](https://dotnetfiddle.net/qpe8bV)
-
-[Try it (DataTable)](https://dotnetfiddle.net/rgugIj)
-
-### Performance Comparison
-
-| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities |
-| :-------------- | -------------: | -------------: | -------------: |
-| BulkMerge | 80 ms | 110 ms | 170 ms |
-
-[Try this benchmark online (Entity)](https://dotnetfiddle.net/roGRsu)
-
-[Try this benchmark online (DataTable)](https://dotnetfiddle.net/CY5s3G)
-
-> HINT: A lot of factors might affect the benchmark time such as index, column type, latency, throttling, etc.
-
-### Scenarios
-The `BulkMerge` method is **fast** but also **flexible** to let you handle various scenarios such as:
-
-- [Merge and keep identity value](#merge-and-keep-identity-value)
-- [Merge with custom key](#merge-with-custom-key)
-- [Merge and include/exclude properties](#merge-and-includeexclude-properties)
-- [Merge with related child entities](#merge-with-related-child-entities)
-- [More scenarios](#more-scenarios)
-
-### Advantages
-- Easy to use
-- Flexible
-- Increase performance
-- Increase application responsiveness
-
-## Getting Started
-
-### Bulk Merge
-The `BulkMerge` and `BulkMergeAync` methods let you merge a large number of entities in your database.
-
-```csharp
-bulk.BulkMerge(customers);
-
-bulk.BulkMergeAsync(customers, cancellationToken);
-```
-[Try it (Entity)](https://dotnetfiddle.net/pigFx8)
-
-[Try it (DataTable)](https://dotnetfiddle.net/LULDpj)
-
-### Bulk Merge with options
-The `options` parameter let you use a lambda expression to customize the way entities are inserted/updated.
-
-```csharp
-bulk.AutoMapKeyExpression = c => c.Code;
-bulk.BulkMerge(customers);
-```
-[Try it (Entity)](https://dotnetfiddle.net/5wMQ6X)
-
-```csharp
-bulk.AutoMapKeyName = "Code";
-bulk.BulkMerge(customers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/JJIPCB)
-
-## Real Life Scenarios
-
-### Merge and keep identity value
-Your entity has an identity property, but you want to force to insert a specific value instead. The `MergeKeepIdentity` option allows you to keep the identity value of your entity.
-
-```csharp
-bulk.MergeKeepIdentity = true;
-bulk.BulkMerge(customers);
-```
-[Try it (Entity)](https://dotnetfiddle.net/52uijH)
-
-[Try it (DataTable)](https://dotnetfiddle.net/gNXl1z)
-
-### Merge and include/exclude properties
-You want to merge your entities but only for specific properties.
-
-- `ColumnInputExpression`: This option let you choose which properties to map.
-- `ColumnIgnoreExpression`: This option let you ignore properties that are auto-mapped.
-- `IgnoreOnMergeInsertExpression`: This option let you ignore properties only for the `INSERT` part.
-- `IgnoreOnMergeUpdateExpression`: This option let you ignore properties only for the `UPDATE` part.
-
-```csharp
-bulk.ColumnInputExpression = c => new { c.CustomerID, c.Name};
-bulk.BulkMerge(customers);
-
-bulk.IgnoreOnMergeUpdateExpression = c => new { c.CreatedDate };
-bulk.BulkMerge(customers);
-```
-[Try it (Entity)](https://dotnetfiddle.net/W4TJkK)
-
-```csharp
-var columnMapping = new ColumnMapping("CreatedDate");
-
-columnMapping.IgnoreOnMergeUpdate = true;
-
-bulk.ColumnMappings.Add("CustomerID", true);
-bulk.ColumnMappings.Add("UpdatedDate");
-bulk.ColumnMappings.Add("Name");
-bulk.ColumnMappings.Add(columnMapping);
-bulk.BulkMerge(dtCustomers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/TIfeSG)
-
-### Merge with custom key
-You want to merge entities, but you don't have the primary key. The `ColumnPrimaryKeyExpression` let you use as a key any property or combination of properties.
-
-```csharp
-bulk.AutoMapKeyExpression = c => c.Code;
-bulk.BulkMerge(customers);
-```
-[Try it (Entity)](https://dotnetfiddle.net/Xlcdxq)
-
-```csharp
-bulk.AutoMapKeyName = "Code";
-bulk.BulkMerge(customers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/9KOxdW)
-
-
-### Merge with related child entities
-You want to merge entities but also merge related child entities.
-
-```csharp
-bulk.DestinationTableName = "Invoices";
-bulk.AutoMapOutputIdentity = true;
-bulk.BulkMerge(invoices);
-
-// SET foreign key value
-invoices.ForEach(x => x.Items.ForEach(y => y.InvoiceID = x.InvoiceID));
-
-bulk.DestinationTableName = "InvoiceItems";
-bulk.BulkMerge(invoices.SelectMany(x => x.Items).ToList());
-```
-[Try it (Entity)](https://dotnetfiddle.net/LLDcvy)
-
-[Try it (DataTable)](https://dotnetfiddle.net/rhq5ZM)
-
-### More scenarios
-Hundred of scenarios has been solved and are now supported.
-
-The best way to ask for a special request or to find out if a solution for your scenario already exists is by contacting us:
-info@zzzprojects.com
-
-## Documentation
-
-### BulkMerge
-
-###### Methods
-
-| Name | Description | Example (DataTable) | Example (Entity) |
-| :--- | :---------- | :------ | :------ |
-| `BulkMerge(items)` | Bulk insert entities in your database. | [Try it](https://dotnetfiddle.net/hjTQmE) | [Try it](https://dotnetfiddle.net/z2lxbA) |
-| `BulkMergeAsync(items)` | Bulk insert entities asynchronously in your database. | | |
-| `BulkMergeAsync(items, cancellationToken)` | Bulk insert entities asynchronously in your database. | | |
-
-###### Options
-More options can be found here:
-
-- [Audit](https://bulk-operations.net/audit)
-- [Batch](https://bulk-operations.net/batch)
-- [Execute Event](https://bulk-operations.net/execute-event)
-- [Log](https://bulk-operations.net/log)
-- [Temporary Table](https://bulk-operations.net/temporary-table)
-- [Transient Error](https://bulk-operations.net/transient-error)
-- [SQL Server](https://bulk-operations.net/sql-server)
diff --git a/docs2/pages/documentations/bulk-savechanges.md b/docs2/pages/documentations/bulk-savechanges.md
deleted file mode 100644
index afcebca..0000000
--- a/docs2/pages/documentations/bulk-savechanges.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Bulk SaveChanges
-
-## Introduction
-
-Execute an INSERT/UPDATE/DELETE operation using the DataRowState of the DataTable.
-
-### Example - Bulk SaveChanges
-```csharp
-var dt = new DataTable();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-
-// Easy to use
-bulk.BulkSaveChanges(dt);
-```
diff --git a/docs2/pages/documentations/bulk-synchronize.md b/docs2/pages/documentations/bulk-synchronize.md
deleted file mode 100644
index a7619a5..0000000
--- a/docs2/pages/documentations/bulk-synchronize.md
+++ /dev/null
@@ -1,166 +0,0 @@
-# Bulk Synchronize
-
-## Description
-
-The `BulkSynchronize` extension method let you synchronize a large number of entities in your database.
-
-A synchronize is a mirror operation from the data source to the database. All rows that match the entity key are `UPDATED`, non-matching rows that exist from the source are `INSERTED`, non-matching rows that exist in the database are `DELETED`.
-
-```csharp
-// Easy to use
-bulk.BulkSynchronize(customers);
-
-// Easy to customize
-bulk.DestinationTableName = "Customers";
-
-bulk.AutoMapKeyExpression = customer => customer.Code;
-bulk.BulkSynchronize(customers);
-```
-[Try it (Entity)](https://dotnetfiddle.net/06N89k)
-
-```csharp
-// Easy to use
-bulk.BulkSynchronize(dtCustomers);
-
-// Easy to customize
-bulk.DestinationTableName = "Customers";
-
-bulk.AutoMapKeyName = "Code";
-bulk.BulkSynchronize(dtCustomers);
-});
-```
-[Try it (DataTable)](https://dotnetfiddle.net/RLvbF1)
-
-### Scenarios
-The `BulkSynchronize` method is **fast** but also **flexible** to let you handle various scenarios such as:
-- [Synchronize and keep identity value](#synchronize-and-keep-identity-value)
-- [Synchronize and include/exclude properties](#synchronize-and-includeexclude-properties)
-- [Synchronize with custom key](#synchronize-with-custom-key)
-- [More scenarios](#more-scenarios)
-
-### Advantages
-- Easy to use
-- Flexible
-- Increase performance
-- Increase application responsiveness
-
-## Getting Started
-
-### Bulk Synchronize
-The `BulkSynchronize` and `BulkSynchronizeAync` methods let you synchronize a large number of entities in your database.
-
-```csharp
-bulk.AutoMapKeyExpression = customer => customer.Code;
-bulk.BulkSynchronize(customers);
-```
-[Try it (Entity)](https://dotnetfiddle.net/rd4Qm2)
-
-```csharp
-bulk.AutoMapKeyName = "Code";
-bulk.BulkSynchronize(dtCustomers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/LMLvFy)
-
-### Bulk Synchronize with options
-The `options` parameter let you use a lambda expression to customize the way entities are synchronized.
-
-```csharp
-context.BulkSynchronize(customers, options => options.BatchSize = 100);
-
-context.BulkSynchronize(customers, options => {
- options.ColumnPrimaryKeyExpression = customer => customer.Code;
-});
-```
-[Try it (Entity)](https://dotnetfiddle.net/P4j6y4)
-
-[Try it (DataTable)](https://dotnetfiddle.net/Z3QmQH)
-
-## Real Life Scenarios
-
-### Synchronize and keep identity value
-Your entity has an identity property, but you want to force to insert a specific value instead. The `SynchronizeKeepIdentity` option allows you to keep the identity value of your entity.
-
-```csharp
-bulk.SynchronizeKeepidentity = true;
-bulk.BulkSynchronize(customers);
-```
-[Try it (Entity)](https://dotnetfiddle.net/P6txGi)
-
-[Try it (DataTable)](https://dotnetfiddle.net/U8ARaT)
-
-### Synchronize and include/exclude properties
-You want to synchronize your entities but only for specific properties.
-
-- `ColumnInputExpression`: This option let you choose which properties to map.
-- `IgnoreOnSynchronizeInsertExpression`: This option let you ignore when inserting properties that are auto-mapped.
-- `IgnoreOnSynchronizeUpdateExpression`: This option let you ignore when updating properties that are auto-mapped.
-
-```csharp
-bulk.IgnoreOnSynchronizeInsertExpression = c => c.UpdatedDate;
-bulk.IgnoreOnSynchronizeUpdateExpression = c => c.CreatedDate;
-bulk.AutoMapKeyExpression = customer => customer.Code;
-bulk.BulkSynchronize(customizeToSynchronize);
-```
-[Try it (Entity)](https://dotnetfiddle.net/4u3Mxf)
-
-```csharp
-var columnMapping1 = new ColumnMapping("UpdatedDate");
-var columnMapping2 = new ColumnMapping("CreatedDate");
-
-columnMapping1.IgnoreOnSynchronizeInsert = true;
-columnMapping2.IgnoreOnSynchronizeUpdate = true;
-bulk.ColumnMappings.Add(columnMapping1);
-bulk.ColumnMappings.Add(columnMapping2);
-
-bulk.ColumnMappings.Add("Code", true);
-bulk.ColumnMappings.Add("CustomerID");
-bulk.ColumnMappings.Add("FirstName");
-bulk.ColumnMappings.Add("LastName");
-
-bulk.BulkSynchronize(dtCustomers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/bAq5hA)
-
-### Synchronize with custom key
-You want to synchronize entities, but you don't have the primary key. The `ColumnPrimaryKeyExpression` let you use as a key any property or combination of properties.
-
-```csharp
-bulk.AutoMapKeyExpression = customer => customer.Code;
-bulk.BulkSynchronize(customers);
-```
-[Try it (Entity)](https://dotnetfiddle.net/oEShFh)
-
-```csharp
-bulk.AutoMapKeyName = "Code";
-bulk.BulkSynchronize(dtCustomers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/SGkrot)
-
-### More scenarios
-Hundred of scenarios has been solved and are now supported.
-
-The best way to ask for a special request or to find out if a solution for your scenario already exists is by contacting us:
-info@zzzprojects.com
-
-## Documentation
-
-### BulkSynchronize
-
-###### Methods
-
-| Name | Description | Example (DataTable) | Example (Entity) |
-| :--- | :---------- | :------ | :------ |
-| `BulkSynchronize(items)` | Bulk synchronize entities in your database. | [Try it](https://dotnetfiddle.net/DM5xFj) | [Try it](https://dotnetfiddle.net/LwkmNL) |
-| `BulkSynchronizeAsync(items)` | Bulk synchronize entities asynchronously in your database. | |
-| `BulkSynchronizeAsync(items, cancellationToken)` | Bulk synchronize entities asynchronously in your database. | |
-
-###### Options
-More options can be found here:
-
-- [Audit](https://bulk-operations.net/audit)
-- [Batch](https://bulk-operations.net/batch)
-- [Execute Event](https://bulk-operations.net/execute-event)
-- [Log](https://bulk-operations.net/log)
-- [Temporary Table](https://bulk-operations.net/temporary-table)
-- [Transient Error](https://bulk-operations.net/transient-error)
-- [SQL Server](https://bulk-operations.net/sql-server)
diff --git a/docs2/pages/documentations/bulk-update.md b/docs2/pages/documentations/bulk-update.md
deleted file mode 100644
index a4cb4b0..0000000
--- a/docs2/pages/documentations/bulk-update.md
+++ /dev/null
@@ -1,165 +0,0 @@
-# Bulk Update
-
-## Description
-
-The `BulkUpdate` method let you update a large number of entities in your database.
-
-```csharp
-// easy to use
-bulk.DestinationTableName = "Customers";
-bulk.BulkUpdate(customers);
-
-// Easy to customize
-bulk.DestinationTableName = "Customers";
-bulk.BatchSize = 100;
-bulk.AutoMapOutputDirection = true;
-bulk.BulkUpdate(customers);
-```
-[Try it (Entity)](https://dotnetfiddle.net/xKlMEt)
-
-[Try it (DataTable)](https://dotnetfiddle.net/p2YC2w)
-
-### Performance Comparison
-
-| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities |
-| :-------------- | -------------: | -------------: | -------------: |
-| BulkUpdate | 80 ms | 110 ms | 170 ms |
-
-[Try it (Entity)](https://dotnetfiddle.net/tf8sSi)
-
-[Try it (DataTable)](https://dotnetfiddle.net/j6bFmr)
-
-> HINT: A lot of factors might affect the benchmark time such as index, column type, latency, throttling, etc.
-
-### Scenarios
-The `BulkUpdate` method is **fast** but also **flexible** to let you handle various scenarios such as:
-
-- [Update and include/exclude properties](#update-and-includeexclude-properties)
-- [Update with custom key](#update-with-custom-key)
-- [Update with related child entities (Include Graph)](#update-with-related-child-entities-include-graph)
-- [More scenarios](#more-scenarios)
-
-### Advantages
-- Easy to use
-- Flexible
-- Increase performance
-- Increase application responsiveness
-
-## Getting Started
-
-### Bulk Update
-The `BulkUpdate` and `BulkUpdateAync` methods your let update a large number of entities in your database.
-
-```csharp
-bulk.BulkUpdate(customers);
-
-bulk.BulkUpdateAsync(customers, cancellationToken);
-```
-[Try it (Entity)](https://dotnetfiddle.net/kK4qnb)
-
-[Try it (DataTable)](https://dotnetfiddle.net/COCXD4)
-
-### Bulk Update with options
-The `options` parameter let you use a lambda expression to customize the way entities are updated.
-
-```csharp
-bulk.AutoMapKeyExpression = c => c.Code;
-bulk.BulkUpdate(customers);
-```
-[Try it (Entity)](https://dotnetfiddle.net/16kWmc)
-
-```csharp
-bulk.AutoMapKeyName = "Code";
-bulk.BulkUpdate(dtCustomers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/uWRH6Y)
-
-## Real Life Scenarios
-
-### Update and include/exclude properties
-You want to update your entities but only for specific properties.
-
-- `ColumnInputExpression`: This option let you choose which properties to map.
-- `IgnoreOnUpdateExpression`: This option let you ignore properties that are auto-mapped.
-
-```csharp
-bulk.IgnoreOnUpdateExpression = c => new { c.ColumnToIgnore };
-bulk.BulkUpdate(customers.Skip(2));
-```
-[Try it (Entity)](https://dotnetfiddle.net/3z531u)
-
-```csharp
-var columnMapping = new ColumnMapping("CreatedDate");
-
-columnMapping.IgnoreOnUpdate = true;
-
-bulk.ColumnMappings.Add("CustomerID", true);
-bulk.ColumnMappings.Add("UpdatedDate");
-bulk.ColumnMappings.Add("Name");
-bulk.ColumnMappings.Add(columnMapping);
-bulk.BulkUpdate(dtCustomers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/EyAtSE)
-
-### Update with custom key
-You want to update entities, but you don't have the primary key. The `ColumnPrimaryKeyExpression` let you use as a key any property or combination of properties.
-
-```csharp
-bulk.AutoMapKeyExpression = c => c.Code;
-bulk.BulkUpdate(customers);
-```
-[Try it (Entity)](https://dotnetfiddle.net/BEL4Ny)
-
-```csharp
-bulk.AutoMapKeyName = "Code";
-bulk.BulkUpdate(customers);
-```
-[Try it (DataTable)](https://dotnetfiddle.net/wJJM5T)
-
-### Update with related child entities
-You want to update entities but also automatically insert related child entities.
-
-```csharp
-bulk.DestinationTableName = "Invoices";
-bulk.AutoMapOutputIdentity = true;
-
-bulk.BulkUpdate(invoices);
-
-// SET foreign key value
-invoices.ForEach(x => x.Items.ForEach(y => y.InvoiceID = x.InvoiceID));
-
-bulk.DestinationTableName = "InvoiceItems";
-bulk.BulkUpdate(invoices.SelectMany(x => x.Items).ToList());
-```
-[Try it (Entity)](https://dotnetfiddle.net/eEmCu1)
-
-[Try it (DataTable)](https://dotnetfiddle.net/8C7est)
-
-### More scenarios
-Hundred of scenarios has been solved and are now supported.
-
-The best way to ask for a special request or to find out if a solution for your scenario already exists is by contacting us:
-info@zzzprojects.com
-
-## Documentation
-
-### BulkUpdate
-
-###### Methods
-
-| Name | Description | Example (DataTable) | Example (Entity) |
-| :--- | :---------- | :------ | :------ |
-| `BulkUpdate(items)` | Bulk update entities in your database. | [Try it](https://dotnetfiddle.net/jFMKu1) | [Try it](https://dotnetfiddle.net/fuv4IV) |
-| `BulkUpdateAsync(items)` | Bulk update entities asynchronously in your database. | |
-| `BulkUpdateAsync(items, cancellationToken)` | Bulk update entities asynchronously in your database. | |
-
-###### Options
-More options can be found here:
-
-- [Audit](https://bulk-operations.net/audit)
-- [Batch](https://bulk-operations.net/batch)
-- [Execute Event](https://bulk-operations.net/execute-event)
-- [Log](https://bulk-operations.net/log)
-- [Temporary Table](https://bulk-operations.net/temporary-table)
-- [Transient Error](https://bulk-operations.net/transient-error)
-- [SQL Server](https://bulk-operations.net/sql-server)
diff --git a/docs2/pages/documentations/bulkoperation-manager.md b/docs2/pages/documentations/bulkoperation-manager.md
deleted file mode 100644
index ea1b120..0000000
--- a/docs2/pages/documentations/bulkoperation-manager.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# BulkOperation Manager
-
-_Coming Soon_
diff --git a/docs2/pages/documentations/delete-from-query.md b/docs2/pages/documentations/delete-from-query.md
deleted file mode 100644
index 83fef95..0000000
--- a/docs2/pages/documentations/delete-from-query.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# Delete from Query
-
-## Delete From Query
-Execute a DELETE operation using a LINQ Query.
-
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-// DELETE all customers inactive for more than 2 years
-bulk.DeleteFromQuery(
- c => c.Where(x => x.LastLogin < DateTime.Now.AddYears(-2)));
-```
-
-### Performance Benchmarks
-
-| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities |
-| :-------------- | -------------: | -------------: | -------------: |
-| DeleteFromQuery | 1 ms | 1 ms | 1 ms |
-
-### Support
-- SQL Server 2008+
-- SQL Azure
diff --git a/docs2/pages/documentations/eval-expressions/eval-compile.md b/docs2/pages/documentations/eval-expressions/eval-compile.md
deleted file mode 100644
index 8f1c725..0000000
--- a/docs2/pages/documentations/eval-expressions/eval-compile.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# Eval.Compile
-
-## Description
-You can compile C# expression at runtime using the [Eval-Expression.NET](http://eval-expression.net/) library.
-
-You can download it here: [Download](http://eval-expression.net/download)
-
-> The Eval-Expression.NET library can be activated with the Bulk Operations license.
-
-## Compile and return a strongly typed delegate
-You can return the delegate as a strongly typed function or action:
-
-- Eval.Compile<TDelegate>(string code)
-- Eval.Compile<TDelegate>(string code, IEnumerable<string> parameterNames)
-- Eval.Compile<TDelegate>(string code, params string[] parameterNames)
-
-### Example
-```csharp
-// Delegate Func
-var compiled = Eval.Compile>("{0} + {1}");
-int result = compiled(1, 2);
-
-// Delegate Action
-var compiled = Eval.Compile>("{0} + {1}");
-compiled(1, 2);
-
-// Named Parameter
-var compiled = Eval.Compile>("X + Y", "X", "Y");
-int result = compiled(1, 2);
-```
-{% include component-try-it.html href='https://dotnetfiddle.net/MBHlX8' %}
-
-## Compile and return a delegate
-You can return the delegate as a generic delegate:
-
-- Eval.Compile(string code): Func<object>
-- Eval.Compile(string code, Type type1): Func<object, object>
-- Eval.Compile(string code, Type type1, ... , Type type9): Func<object, ... , object, object>
-- Eval.Compile(string code, IEnumerable<Type> types): Func<IEnumerable, object>
-- Eval.Compile(string code, params Type[] types): Func<IEnumerable, object>
-- Eval.Compile(string code, IDictionary<string, Type> nameTypes): Func<IDictionary, object>
-
-### Example
-```csharp
-// Overload: Up to 9 parameters can be used
-var compiled = Eval.Compile("{0} + {1}", typeof(int), typeof(int));
-object result = compiled(1, 2);
-
-// Overload: params Type[]
-var values = new List() {1, 2};
-var types = values.Select(x => x.GetType()).ToArray();
-
-var compiled = Eval.Compile("{0} + {1}", types);
-var result = compiled(values);
-
-// Overload: IDictionary
-var values = new Dictionary { {"X", 1}, {"Y", 2} };
-var types = values.ToDictionary(x => x.Key, x => x.Value.GetType());
-
-var compiled = Eval.Compile("X + Y", types);
-var result = compiled(values);
-```
-{% include component-try-it.html href='https://dotnetfiddle.net/870F71' %}
-
-
diff --git a/docs2/pages/documentations/eval-expressions/eval-execute.md b/docs2/pages/documentations/eval-expressions/eval-execute.md
deleted file mode 100644
index 1bed429..0000000
--- a/docs2/pages/documentations/eval-expressions/eval-execute.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# Eval.Execute
-
-## Description
-You can execute C# expression at runtime using the Eval-Expression.NET library.
-
-You can download it here: [Download](http://eval-expression.net/download)
-
-> The Eval-Expression.NET library can be activated with the Bulk Operations license.
-
-You can specify parameter value to use in the expression from various way:
-
-- Anonymous Type
-- Argument Position
-- Class Member
-- Dictionary
-
-Under the hood, the fist time an expression is executed, it's getting compiled and the delegate is stored in the memory before being returned and executed. All future call from the same expression will retrieve the delegate from the memory to optimize the performance.
-
-Even with this optimization, if you have to evaluate the same expression multiple times, for example, in a `for` loop, we highly recommend you to use directly the delegate returning from the Compile method instead.
-
-## Execute and return a strongly typed result
-You can return the result as a strongly typed type:
-
-- Eval.Execute<TResult>(string code)
-- Eval.Execute<TResult>(string code, object parameters)
-- Eval.Execute<TResult>(string code, params object[] parameters)
-
-### Example
-
-```csharp
-// Parameter: Anonymous Type
-int result = Eval.Execute("X + Y", new { X = 1, Y = 2} );
-
-// Parameter: Argument Position
-int result = Eval.Execute("{0} + {1}", 1, 2);
-
-// Parameter: Class Member
-dynamic expandoObject = new ExpandoObject();
-expandoObject.X = 1;
-expandoObject.Y = 2;
-int result = Eval.Execute("X + Y", expandoObject);
-
-// Parameter: Dictionary Key
-var values = new Dictionary() { {"X", 1}, {"Y", 2} };
-int result = Eval.Execute("X + Y", values);
-```
-{% include component-try-it.html href='https://dotnetfiddle.net/W9TwcP' %}
-
-## Execute and return an object result
-You can return the result as an object:
-
-- Eval.Execute(string code)
-- Eval.Execute(string code, object parameters)
-- Eval.Execute(string code, params object[] parameters)
-
-```csharp
-// Parameter: Anonymous Type
-object result = Eval.Execute("X + Y", new { X = 1, Y = 2} );
-
-// Parameter: Argument Position
-object result = Eval.Execute("{0} + {1}", 1, 2);
-
-// Parameter: Class Member
-dynamic expandoObject = new ExpandoObject();
-expandoObject.X = 1;
-expandoObject.Y = 2;
-object result = Eval.Execute("X + Y", expandoObject);
-
-// Parameter: Dictionary Key
-var values = new Dictionary() { {"X", 1}, {"Y", 2} };
-object result = Eval.Execute("X + Y", values);
-```
-{% include component-try-it.html href='https://dotnetfiddle.net/8mtLH8' %}
diff --git a/docs2/pages/documentations/eval-expressions/linq-dynamic.md b/docs2/pages/documentations/eval-expressions/linq-dynamic.md
deleted file mode 100644
index 92a3ad3..0000000
--- a/docs2/pages/documentations/eval-expressions/linq-dynamic.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# LINQ Dynamic
-
-## Description
-You can execute query dynamically through the [Eval-Expression.NET](http://eval-expression.net/) library.
-
-You can download it here: [Download](http://eval-expression.net/download)
-
-> The Eval-Expression.NET library can be activated with the Bulk Operations license.
-
-## LINQ Dynamic - Predicate
-You can use any LINQ method that support predicate with a dynamic C# expression :
-
-- Deferred
- - SkipWhile
- - TakeWhile
- - Where
-- Immediate
- - All
- - Any
- - Count
- - First
- - FirstOrDefault
- - Last
- - LastOrDefault
- - LongCount
- - Single
- - SingleOrDefault
-
-### Example
-```csharp
-var list = new List() { 1, 2, 3, 4, 5 };
-
-var list2 = list.Where(x => "x > 2");
-var list3 = list.Where(x => "x > X", new { X = 2 }); // with parameter
-```
-{% include component-try-it.html href='https://dotnetfiddle.net/S42mkU' %}
-
-## LINQ Dynamic - Ordering and Selecting
-You can use any ordering and selecting method with a dynamic C# expression:
-
- - OrderByDescendingDynamic
- - OrderByDynamic
- - SelectDynamic
- - SelectMany
- - ThenByDescendingDynamic
- - ThenByDynamic
-
-> The **"Dynamic"** suffix is required for not overriding the default behavior (ordering or selecting by a string is valid).
-
-### Example
-```csharp
-var list = new List() { 5, 2, 4, 1, 3 };
-
-// SelectDynamic
-var list2 = list.SelectDynamic(x => "new { y = x + 1 }");
-var list3 = list.SelectDynamic(x => "new { y = x + 1 }", new { y = 1 });
-
-// OrderByDynamic
-var list4 = list.OrderByDynamic(x => "x + 1");
-var list5 = list.OrderByDynamic(x => "x + Y", new { Y = 1 });
-```
-
-## LINQ Dynamic - Execute
-You can push the LINQ Dynamic experience further by using the Execute method and chaining anything else:
-
-- Execute
-- Execute<TResult>
-
-### Example
-```csharp
-var list = new List() { 1, 2, 3, 4, 5 };
-
-var list2 = list.Execute>("Where(x => x > 2).OrderBy(x => x).ToList()");
-var list3 = list.Execute>("Where(x => x > y).OrderBy(x => x).ToList()", new { y = 2 });
-```
diff --git a/docs2/pages/documentations/options-audit.md b/docs2/pages/documentations/options-audit.md
deleted file mode 100644
index fb8541e..0000000
--- a/docs2/pages/documentations/options-audit.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Audit
-
-## UseAudit
-Allow you to audit inserted/deleted rows from the database.
-
-- Default Value: False
-
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.UseAudit = true;
-
-bulk.BulkMerge(dt);
-
-var auditEntries = bulk.AuditEntries;
-```
diff --git a/docs2/pages/documentations/options-batch.md b/docs2/pages/documentations/options-batch.md
deleted file mode 100644
index 6ccae82..0000000
--- a/docs2/pages/documentations/options-batch.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# Batch
-
-## Batch Options
-- [BatchSize](#batchsize)
-- [BatchTimeout](#batchtimeout)
-- [BatchDelayInteval](#batchdelayinterval)
-
-## BatchSize
-Allow you to set the number of records to use in a batch.
-
-By example, if you insert 1000 entities, and you set a batch size of 100, then ten inserts will be performed.
-
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.BatchSize = 100;
-
-bulk.BulkMerge(dt);
-```
-
-## BatchTimeout
-Allow you to set the maximum of time elapsing for a batch before the command throws a timeout exception.
-
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.BatchTimeout = 180;
-
-bulk.BulkMerge(dt);
-```
-
-## BatchDelayInterval
-Allow you to set a delay between every batch.
-
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.BatchDelayInterval = 100;
-
-bulk.BulkMerge(dt);
-```
-
-
-> WARNING: Be careful, this options can often cause lock/deadlock within a transaction.
diff --git a/docs2/pages/documentations/options-column-expression.md b/docs2/pages/documentations/options-column-expression.md
deleted file mode 100644
index 8773e69..0000000
--- a/docs2/pages/documentations/options-column-expression.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Column Expression
-
-## Column Expression Options
-- [ColumnInputExpression](#columninputexpression)
-- [ColumnKeyExpression](#columnkeyexpression)
-- [ColumnOutputExpression](#columnoutputexpression)
-- [ColumnSynchronizeDeleteKeySubsetExpression](#columnsynchronizedeletekeysubsetexpression)
-- [IgnoreOnMergeInsertExpression](#ignoreonmergeinsertexpression)
-- [IgnoreOnMergeUpdateExpression](#ignoreonmergeupdatexpression)
-
-_Coming Soon_
diff --git a/docs2/pages/documentations/options-execute-event.md b/docs2/pages/documentations/options-execute-event.md
deleted file mode 100644
index 5a2c712..0000000
--- a/docs2/pages/documentations/options-execute-event.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# Execute Event
-
-## Excecute Event Options
-- [BulkOperationExecuting](#bulkoperationexecuting)
-- [BulkOperationExecuted](#bulkoperationexecuted)
-
-## BulkOperationExecuting
-Allow you to change configuration before the bulk operation is executed.
-
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.BulkOperationExecuting = bulkOperation => { /* configuration */ };
-
-bulk.BulkMerge(dt);
-```
-
-## BulkOperationExecuted
-Allow you to change configuration after the bulk operation is executed.
-
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.BulkOperationExecuted = bulkOperation => { /* configuration */ };
-
-bulk.BulkMerge(dt);
-```
diff --git a/docs2/pages/documentations/options-log.md b/docs2/pages/documentations/options-log.md
deleted file mode 100644
index 67d4ed6..0000000
--- a/docs2/pages/documentations/options-log.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# Log
-
-## Log Options
-- [Log](#log)
-- [UseLogDump](#uselogdump)
-- [LogDump](#logdump)
-
-## Log
-Allow you to log some event happening in your database.
-
-### Example
-```csharp
-StringBuilder logger = new StringBuilder();
-var bulk = new BulkOperation(connection);
-
-bulk.Log += s => logger.AppendLine(s);
-
-bulk.BulkMerge(dt);
-```
-
-## UseLogDump
-Allow you to log in a string (LogDump) event happening in your database.
-
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.UseLogDump = true;
-
-bulk.BulkMerge(dt);
-
-var logDump = bulk.LogDump;
-```
-
-## LogDump
-Allow you to retrieve event happening in your database when UseLogDump is enabled.
-
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.UseLogDump = true;
-
-bulk.BulkMerge(dt);
-
-var logDump = bulk.LogDump;
-```
diff --git a/docs2/pages/documentations/options-sql-server.md b/docs2/pages/documentations/options-sql-server.md
deleted file mode 100644
index 0d2b2e7..0000000
--- a/docs2/pages/documentations/options-sql-server.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# SQL Server
-
-## SQL Server Options
-- [SqlBulkCopyOptions](#sqlbulkcopyoptions)
-
-## SqlBulkCopyOptions
-Allow you to set the SqlBulkCopyOptions to use when a strategy with the SqlBulkCopy is selected.
-
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.SqlBulkCopyOptions = SqlBulkCopyOptions.Default | SqlBulkCopyOptions.TableLock;
-
-bulk.BulkMerge(dt);
-```
diff --git a/docs2/pages/documentations/options-temporary-table.md b/docs2/pages/documentations/options-temporary-table.md
deleted file mode 100644
index fe772c0..0000000
--- a/docs2/pages/documentations/options-temporary-table.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# Temporary Table
-
-Customize how and when to use a temporary table instead of inline SQL.
-
-## TemporaryTableBatchByTable
-Allow you to set the maximum number of batches a temporary table can contain.
-
-- Default Value: 0 (unlimited)
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.TemporaryTableBatchByTable = 5;
-
-bulk.BulkMerge(dt);
-```
-
-## TemporaryTableInsertBatchSize
-Allow you to set the number of record by batch to insert in a temporary table.
-
-- Default Value: 10,000
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.TemporaryTableInsertBatchSize = 1000;
-
-bulk.BulkMerge(dt);
-```
-
-## TemporaryTableMinRecord
-Allow you to set the minimum number of records before a temporary table strategy is used.
-
-- Default Value: 10
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.TemporaryTableMinRecord = 15;
-
-bulk.BulkMerge(dt);
-```
-
-## TemporaryTableUseTableLock
-Allow you to lock the temporary table while being populated.
-
-- Default Value: true
-
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.TemporaryTableUseTableLock = true;
-
-bulk.BulkMerge(dt);
-```
diff --git a/docs2/pages/documentations/options-transient-error.md b/docs2/pages/documentations/options-transient-error.md
deleted file mode 100644
index b053dac..0000000
--- a/docs2/pages/documentations/options-transient-error.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# Transient Error
-
-## Transient Error Options
-- [RetryCount](#retrycount)
-- [RetryInterval](#retryinterval)
-
-## RetryCount
-Allow you to set how many time the bulk operation should retry the operation when a transient error occurs.
-
-### Example
-
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.RetryCount = 3;
-
-bulk.BulkMerge(dt);
-```
-
-## RetryInterval
-Allow you to set how many time to wait before trying an operation again when a transient error occurs.
-
-### Example
-
-```csharp
-var bulk = new BulkOperation(connection);
-
-bulk.RetryCount = 3;
-bulk.RetryInterval = new TimeSpan(100);
-
-bulk.BulkMerge(dt);
-```
diff --git a/docs2/pages/documentations/update-from-query.md b/docs2/pages/documentations/update-from-query.md
deleted file mode 100644
index 4d231ce..0000000
--- a/docs2/pages/documentations/update-from-query.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# Update from Query
-
-## Update From Query
-Execute an INSERT operation.
-
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-// UPDATE all customers inactive for more than 2 years
-bulk.UpdateFromQuery(
- c => c.Where(x => x.IsActive && x.LastLogin < DateTime.Now.AddYears(-2)),
- c => new Customer {IsActive = false});
-```
-
-### Performance Benchmarks
-
-| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities |
-| :-------------- | -------------: | -------------: | -------------: |
-| UpdateFromQuery | 1 ms | 1 ms | 1 ms |
-
-### Support
-- SQL Server 2008+
-- SQL Azure
diff --git a/docs2/pages/faq/contact-us.md b/docs2/pages/faq/contact-us.md
deleted file mode 100644
index b55d8f9..0000000
--- a/docs2/pages/faq/contact-us.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contact us
-
-## I have a question! What should I do?
-Contact us directly with your questions: info@zzzprojects.com _(recommended)_
-
-You can also use the [Issues Tracker](https://github.com/zzzprojects/EntityFramework-Extensions/issues).
-
-## I think I've found a bug! What should I do?
-Contact us directly with your bug: info@zzzprojects.com _(recommended)_
-
-You can also use the [Issues Tracker](https://github.com/zzzprojects/EntityFramework-Extensions/issues).
-
-## I think I've found a feature! What should I do?
-Contact us directly with your feature: info@zzzprojects.com _(recommended)_
-
-You can also use the project [Issues Tracker](https://github.com/zzzprojects/EntityFramework-Extensions/issues).
-
-## I think you forget about my request! What should I do?
-We usually get/answer over 20 requests by day. Unfortunately, it's happen!
-
-Just contact us back again, and we will make sure we don't miss it a second time!
diff --git a/docs2/pages/faq/faq-general.md b/docs2/pages/faq/faq-general.md
deleted file mode 100644
index 7d3a33d..0000000
--- a/docs2/pages/faq/faq-general.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# FAQ General
-
-## Which Payment method do you support?
-We support the following payment method:
-
-- PayPal
-- Check
-- Bank Transfer
-
-## Can I purchase this product from a Reseller?
-Yes, just let him know to contact us.
-
-## What's your average SLA response and resolution times?
-We try to provide an outstanding support service.
-
-We normally answer very fast, often within one hour.
-
-Most fixes is resolved within one business day.
-
-## Do you support EF Core
-We do not yet. We are currently re-writing the library to support it.
diff --git a/docs2/pages/faq/faq-installation.md b/docs2/pages/faq/faq-installation.md
deleted file mode 100644
index f9be357..0000000
--- a/docs2/pages/faq/faq-installation.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Installation
-
-## How to I Install your product?
-It simple, you download it from NuGet and add it to your project.
-
-More Info: [Tutorials - Installing](installing)
-
-## I have installed your product, but I don't see your extensions method
-- Make sure to install it in the right project
-- Make sure your project support .NET40 or better
diff --git a/docs2/pages/faq/faq-license.md b/docs2/pages/faq/faq-license.md
deleted file mode 100644
index c5cec8f..0000000
--- a/docs2/pages/faq/faq-license.md
+++ /dev/null
@@ -1,74 +0,0 @@
-# License
-
-## Developer Seat
-
-### What's a developer seat?
-A developer seat is a developer working for your company and developing code directly with our product.
-
-You don't have to purchase developer seat for front-end developer or back-end developer which doesn't use our product API.
-
-Since you buy developer seat, you can develop an unlimited amount of projects within your company.
-
-### What's the cost for additional developer seat?
-The cost for additional developer seat is usually extremely low. We want to make sure our library is accessible for small and large company.
-
-### Do developer seat are transferable?
-Yes, a developer seat can be transferred to any employee within your company.
-
-## Perpertual License
-
-### What's a perpetual license?
-A perpetual license allows you to use the licensed product indefinitely.
-
-### Even when my Support & Upgrade is expired?
-Yes.
-
-## Support & Upgdrade
-
-### My support & upgrade have expired! What will happen?
-Don't worry. Your product continue to work forever!
-
-You can still download and use any version released before the support & upgrade expiration date.
-
-You will need to renew to use version released after the support & upgrade expiration date.
-
-### How do I renew my License?
-We usually start to send renewal mail two months before the support & upgrade expiration date.
-
-If you didn't receive such email, you could contact us directly: info@zzzprojects.com
-
-### Can I have renewal discount?
-We provide a 25% discount to early renewal. So anyone renewing before the support & upgrade expiration date automatically get a renewal discount.
-
-### I'm too late for early renewal discount! What can I do?
-If you are few day late, we still provide early renewal discount.
-
-However, if you have few months late, you will need to purchase the library again.
-
-The best way to find out if you still have access to early renewal discount is by contacting us: info@zzzprojects.com
-
-### Why should I renew?
-Renewing your support & upgrade give the following benefits:
-
-- Major version releases and new product features
-- Fast support by mail
-- Protection against price increases during the maintenance term
-
-## Royalty Free
-
-### Can I install Entity Framework Extensions on Client Machine?
-Yes, the product is royalty free.
-
-That mean, you paid for developer seat, but customer using your product doesn't have to pay.
-
-### Is Entity Framework Extensions Royalty Free?
-Yes, the product is royalty free.
-
-This mean, you can develop a project and install it on thousands of clients.
-
-You paid for developer seat within your company.
-
-Some standard royalty free limitations:
-
-- You can sell a similar product and claim it's yours.
-- If your customer has access to your source code and develops using our API, they will have to purchase a license.
diff --git a/docs2/pages/faq/faq.md b/docs2/pages/faq/faq.md
deleted file mode 100644
index 8d12e90..0000000
--- a/docs2/pages/faq/faq.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# FAQ
-
-## FAQ
-
-
-{% for num in (0..site.data.pages.size) %}
- {% if site.data.pages[num].category == page.permalink and site.data.pages[num].url != page.permalink %}
-
diff --git a/docs2/pages/faq/issue-tracker.md b/docs2/pages/faq/issue-tracker.md
deleted file mode 100644
index 4352f99..0000000
--- a/docs2/pages/faq/issue-tracker.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Issue Tracker
-
-## Where is your Issue Tracker?
-
-While we prefer to be contacted directly: info@zzzprojects.com
-
-We understand some people prefer to have an online issue tracker to follow and comment their issues.
-
-You can create issue here:
-
-- [Issue Tracker](https://github.com/zzzprojects/EntityFramework-Extensions/issues)
diff --git a/docs2/pages/getting-started/_sidebar.md b/docs2/pages/getting-started/_sidebar.md
deleted file mode 100644
index ba6856c..0000000
--- a/docs2/pages/getting-started/_sidebar.md
+++ /dev/null
@@ -1,7 +0,0 @@
-- [Overview](overview.md)
-- [Licensing](licensing.md)
-- Tutorials
- - [Bulk Methods](tutorial-bulk-methods.md)
- - [Bulk Generic Methods](tutorial-bulk-generic-methods.md)
- - [From Query Methods](tutorial-from-query-methods.md)
-
diff --git a/docs2/pages/getting-started/licensing.md b/docs2/pages/getting-started/licensing.md
deleted file mode 100644
index 20351f1..0000000
--- a/docs2/pages/getting-started/licensing.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# Licensing
-
-## Evaluation Period
-You can evaluate our library for several months before purchasing it.
-
-The trial period stops at the end of the month. When you receive a license expiration error, download the latest version which will automatically extend your trial period.
-
-You can also purchase the library [here](/pricing)
-
-Upon purchase, you will receive a license name and a license key.
-
-## How can I get a free license for a personal or academic purpose?
-We don't offer free licenses.
-
-However, you can benefit from all the prime features for personal or academic projects for free by downloading the trial at the beginning of every month.
-
-## Setup License from config file
-The license name and key can be directly added in the app.config or web.config file in the appSettings section.
-
-
-```csharp
-
-
-
-
-```
-
-## Setup License from appsettings.json file (.NET Core)
-The license name and key can be added directly in the appsettings.json.
-
-```csharp
-{
- "Z.BulkOperations": {
- "LicenseName": "[licenseName]",
- "LicenseKey": "[licenseKey]"
- }
-}
-```
-
-## Setup License from code
-You can also set the license name and key directly in the code.
-
-
-```csharp
-// using Z.BulkOperations; // Don't forget to include this.
-
-string licenseName = //... PRO license name
-string licenseKey = //... PRO license key
-
-Z.BulkOperations.LicenseManager.AddLicense(licenseName, licenseKey);
-```
-
-### Recommendation
-- Use the config file to store your license name and license key.
-- **Web App:** Use Application_Start in global.asax to activate your license.
-- **WinForm App:** Use the main thread method to activate your license.
-- **Win Service:** Use the OnStart method to activate your license
-
-> The AddLicense must be set before the first call to the library. Otherwise, you will start the evaluation period
-
-## How can I check if my license is valid?
-The validate method allow you to know whether your license is valid or not.
-
-```csharp
-// CHECK for default provider (SQL Server)
-string licenseErrorMessage;
-if (!Z.BulkOperations.LicenseManager.ValidateLicense(out licenseErrorMessage))
-{
- throw new Exception(licenseErrorMessage);
-}
-
-// CHECK for a specific provider
-string licenseErrorMessage;
-if (!Z.BulkOperations.LicenseManager.ValidateLicense(out licenseErrorMessage, ProviderType.MySql))
-{
- throw new Exception(licenseErrorMessage);
-}
-```
diff --git a/docs2/pages/getting-started/overview.md b/docs2/pages/getting-started/overview.md
deleted file mode 100644
index d77deba..0000000
--- a/docs2/pages/getting-started/overview.md
+++ /dev/null
@@ -1,83 +0,0 @@
-# Overview
-
-## What's Bulk Operations library?
-
-Like SqlBulkCopy, it allows you to perform very fast insertion in an SQL Server.
-
-Unlike SqlBulkCopy, it supports all kind of operations:
-
-- Bulk Insert
-- Bulk Update
-- Bulk Delete
-- Bulk Merge
-- Bulk SaveChanges
-- Bulk Synchronize
-
-And many providers:
-
-- SQL Server 2008+
-- SQL Azure
-- SQL Compact
-- Oracle
-- MySQL
-- PostgreSQL
-- SQLite
-
-It's easy to use, and easy to customize.
-
-```csharp
-// Easy to use
-var bulk = new BulkOperation(connection);
-bulk.BulkInsert(dt);
-bulk.BulkUpdate(dt);
-bulk.BulkDelete(dt);
-bulk.BulkMerge(dt);
-
-// Easy to customize
-var bulk = new BulkOperation(connection);
-bulk.BatchSize = 1000;
-bulk.ColumnInputExpression = c => new { c.Name, c.FirstName };
-bulk.ColumnOutputExpression = c => c.CustomerID;
-bulk.ColumnPrimaryKeyExpression = c => c.Code;
-bulk.BulkMerge(customers);
-```
-
-### Is it that simple?
-
-Yes,
-
-That's why people fall in love so quickly with our library.
-
-## Installing
-Download the NuGet Package
-
-## Requirements
-
-### .NET Version
-
-- .NET Framework 4.0 or greater
-- .NET Standard 2.0 or greater
-
-### Database Provider
-
-- SQL Server 2008+
-- SQL Azure
-- SQL Compact
-- Oracle
-- MySQL
-- PostgreSQL
-- SQLite
-
-## Who use it?
-
-Already **thousands** of companies of all sizes and kinds use it:
-
-- From start-up company with one developer
-- To fortune 100 companies with hundreds of developers
-
-Are you still not using it? Give it one try, and you will understand why they choose our library.
-
-Under the hood, some of our libraries also use it:
-
-- [Entity Framework Extensions](http://entityframework-extensions.net/)
-- [Dapper Plus](http://dapper-plus.net/)
diff --git a/docs2/pages/getting-started/tutorial-bulk-generic-methods.md b/docs2/pages/getting-started/tutorial-bulk-generic-methods.md
deleted file mode 100644
index 0b2815d..0000000
--- a/docs2/pages/getting-started/tutorial-bulk-generic-methods.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# Bulk Generic Methods
-
-## Introduction
-Bulk Generic Methods allow you to work with strongly type expression.
-
-| Name | Description |
-| :-------------- | :------------- |
-| BulkInsert | Execute an INSERT operation. |
-| BulkUpdate | Execute an UPDATE operation. |
-| BulkDelete | Execute a DELETE operation. |
-| BulkMerge | Execute a MERGE/UPSERT operation. UPDATE existing rows matching the key, and INSERT new rows. |
-| BulkSynchronize | Execute a SYNCHRONIZE operation. UPDATE existing rows matching the key, INSERT new rows and DELETE records from the destination not existing in the source. |
-
-### Example
-
-```csharp
-var list = new List();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-bulk.ColumnInputExpression = c => new { c.Name, c.FirstName };
-bulk.ColumnOutputExpression = c => c.CustomerID;
-bulk.ColumnPrimaryKeyExpression = c => c.Code;
-
-// Easy to use
-bulk.BulkInsert(customers);
-bulk.BulkUpdate(customers);
-bulk.BulkDelete(customers);
-bulk.BulkMerge(customers);
-
-```
-
-### Performance Benchmark
-
-| Operations | 1,000 Rows | 10,000 Rows | 100,000 Rows | 1,000,000 Rows |
-| :-------------- | -------------: | -------------: | -------------: | -------------: |
-| BulkInsert | 6 ms | 25 ms | 200 ms | 2,000 ms |
-| BulkUpdate | 50 ms | 80 ms | 575 ms | 6,500 ms |
-| BulkDelete | 45 ms | 70 ms | 625 ms | 6,800 ms |
-| BulkMerge | 65 ms | 160 ms | 1200 ms | 12,000 ms |
-
diff --git a/docs2/pages/getting-started/tutorial-bulk-methods.md b/docs2/pages/getting-started/tutorial-bulk-methods.md
deleted file mode 100644
index 7dd3d0e..0000000
--- a/docs2/pages/getting-started/tutorial-bulk-methods.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# Bulk Methods
-
-## Introduction
-The .NET Bulk Operations library allow you to perform all operations in your database.
-
-| Name | Description |
-| :-------------- | :------------- |
-| BulkInsert | Execute an INSERT operation. |
-| BulkUpdate | Execute an UPDATE operation. |
-| BulkDelete | Execute a DELETE operation. |
-| BulkMerge | Execute a MERGE/UPSERT operation. UPDATE existing rows matching the key, and INSERT new rows. |
-| BulkSaveChanges | Execute an INSERT/UPDATE/DELETE operation using the DataRowState of the DataTable. |
-| BulkSynchronize | Execute a SYNCHRONIZE operation. UPDATE existing rows matching the key, INSERT new rows and DELETE records from the destination not existing in the source. |
-
-### Example
-
-```csharp
-var dt = new DataTable();
-// ...seed...
-
-var bulk = new BulkOperation(connection);
-
-// Easy to customize
-bulk.BatchSize = 1000;
-
-// Easy to use
-bulk.BulkInsert(dt);
-bulk.BulkUpdate(dt);
-bulk.BulkDelete(dt);
-bulk.BulkMerge(dt);
-
-```
-
-### Performance Benchmark
-
-| Operations | 1,000 Rows | 10,000 Rows | 100,000 Rows | 1,000,000 Rows |
-| :-------------- | -------------: | -------------: | -------------: | -------------: |
-| BulkInsert | 6 ms | 25 ms | 200 ms | 2,000 ms |
-| BulkUpdate | 50 ms | 80 ms | 575 ms | 6,500 ms |
-| BulkDelete | 45 ms | 70 ms | 625 ms | 6,800 ms |
-| BulkMerge | 65 ms | 160 ms | 1200 ms | 12,000 ms |
-
diff --git a/docs2/pages/getting-started/tutorial-from-query-methods.md b/docs2/pages/getting-started/tutorial-from-query-methods.md
deleted file mode 100644
index a0a029e..0000000
--- a/docs2/pages/getting-started/tutorial-from-query-methods.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# From Query Methods
-
-## Introduction
-FromQuery operations allow you to use LINQ Query to execute an operation directly in the database
-
-| Name | Description |
-| :-------------- | :------------- |
-| DeleteFromQuery | Execute a DELETE operation using a LINQ Query. |
-| UpdateFromQuery | Execute an UPDATE operation using a LINQ Query. |
-
-
-
-### Example
-```csharp
-var bulk = new BulkOperation(connection);
-
-// DELETE all customers inactive for more than 2 years
-bulk.DeleteFromQuery(
- c => c.Where(x => x.LastLogin < DateTime.Now.AddYears(-2)));
-
-// UPDATE all customers inactive for more than 2 years
-bulk.UpdateFromQuery(
- c => c.Where(x => x.IsActive && x.LastLogin < DateTime.Now.AddYears(-2)),
- c => new Customer {IsActive = false});
-```
-
-
-### Performance Benchmarks
-
-| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities |
-| :-------------- | -------------: | -------------: | -------------: |
-| DeleteFromQuery | 1 ms | 1 ms | 1 ms |
-| UpdateFromQuery | 1 ms | 1 ms | 1 ms |
-
-### Support
-- SQL Server 2008+
-- SQL Azure
diff --git a/docs2/pages/troubleshooting/_sidebar.md b/docs2/pages/troubleshooting/_sidebar.md
deleted file mode 100644
index 4d3d11e..0000000
--- a/docs2/pages/troubleshooting/_sidebar.md
+++ /dev/null
@@ -1,3 +0,0 @@
-- [Trial Period Expired](trial-period-expired-exception.md)
-- [MD5](md5-exception.md)
-- [Trial Extend](trial.md)
diff --git a/docs2/pages/troubleshooting/md5-exception.md b/docs2/pages/troubleshooting/md5-exception.md
deleted file mode 100644
index bd64c5d..0000000
--- a/docs2/pages/troubleshooting/md5-exception.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# MD5 Exception
-
-## Problem
-
-You execute a method from the Bulk Operations library, and the following error is thrown:
-
-> This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.
-
-## Solution
-
-### Cause
-
-The default algorithm to validate the license key & name is not supported with FIPS enabled.
-
-### Fix
-
-#### Ask for a compatible key
-
-Contact us and we will send you a new key supporting FIPS: info@zzzprojects.com
-
-Why don't we generated key compatible with FIPS by default? Because it will not be supported for a client machine with Windows XP or below.
-
-#### Disable FIPS
-
-Article: [Disable FIPS](http://docs.trendmicro.com/all/ent/sc/v3.0/en-US/cmcolh/t_fips.html){:target="_blank"}
diff --git a/docs2/pages/troubleshooting/trial-period-expired-exception.md b/docs2/pages/troubleshooting/trial-period-expired-exception.md
deleted file mode 100644
index a26b696..0000000
--- a/docs2/pages/troubleshooting/trial-period-expired-exception.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# Trial Period Expired Exception
-
-## Problem
-
-You execute a method from the Bulk Operations library, and the following error is thrown:
-
-> ERROR_005: The monthly trial period is expired. You can extend your trial by downloading the latest version. You can also purchase a perpetual license on our website. If you already own this license, this error only appears if the license has not been found, you can find additional information on our troubleshooting section (http://bulk-operations.net/trial-period-expired-exception). Contact our support team for more details: info@zzzprojects.com'
-
-## Solution
-
-### Cause
-
-- You are currently evaluating the library and the trial period is expired.
-- You have purchased the license but didn't register it correctly.
-
-### Fix
-
-#### Trial Period Expired
-
-You can extend your trial by downloading the latest version.
-
-The latest version always contains a trial for the current month to allow a company to evaluate our library for several months.
-
-#### License Badly Registered
-
-Make sure to follow all recommendation about how to setup your license: [Licensing](/licensing)
-
-Otherwise contact us: info@zzzprojects.com
diff --git a/docs2/pages/troubleshooting/trial.md b/docs2/pages/troubleshooting/trial.md
deleted file mode 100644
index 9fcb818..0000000
--- a/docs2/pages/troubleshooting/trial.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Trial
-
-Oops! Your trial has expired.
-
-### How can I extend my trial?
-You can extend your trial for several months by downloading the latest version at the beginning of every month.
-
-
-
- Download
-
-
-
-### Where is the free version?
-There is no free version.
-
-### How can I purchase a license?
-A perpetual license can be purchased from here: Buy
diff --git a/docs2/pages/troubleshooting/troubleshooting.md b/docs2/pages/troubleshooting/troubleshooting.md
deleted file mode 100644
index d93b2bb..0000000
--- a/docs2/pages/troubleshooting/troubleshooting.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Troubleshooting
-
-## Troubleshooting
-
-
-{% for num in (0..site.data.pages.size) %}
- {% if site.data.pages[num].category == page.permalink and site.data.pages[num].url != page.permalink %}
-