zzzprojects / Bulk-Operations

C# SQL Bulk Operations | High-performance C# bulk insert, update, delete and merge for SQL Server, SQL Azure, SQL Compact, MySQL, and SQLite.
https://bulk-operations.net
141 stars 36 forks source link

Setting timeout on DeleteFromQuery #63

Open fayilt opened 3 years ago

fayilt commented 3 years ago

Hi, is there a way to override the default timeout of the DeleteFromQuery operation? I couldn't find anything in the documentation.

Thanks

JonathanMagnan commented 3 years ago

Hello @fayilt ,

You simply need to specify a BatchTimeout. You can verify it with the logger:

using (var bulk = new BulkOperation<EntitySimple>())
{
    bulk.Connection = connection;
    bulk.DestinationTableName = "EntitySimple";

    var sb = new StringBuilder();
    bulk.Log = x => sb.AppendLine(x);
    bulk.BatchTimeout = 999;

    bulk.DeleteFromQuery(tests => tests.Where(x => x.ColumnInt > 0));

    var s = sb.ToString();
}

Let me know if that answers correctly to your question.

Best Regards,

Jon

fayilt commented 3 years ago

Thanks, that partially answers my question. We're using DeleteFromQuery extension method on IQueryable, I assume there is no way to specify timeout when using that? And what's the default timeout in that case?

JonathanMagnan commented 3 years ago

Hello @fayilt ,

The default timeout might depend on which library you are using.

The default timeout for:

To set the timeout for EFE, you simply need to set a command timeout as you normally do in Entity Framework:

EFCore: ctx.Database.SetCommandTimeout(777); EF6: ctx.Database.CommandTimeout = 777;

Let me know if that answers all your questions.

Best Regards,

Jon

JonathanMagnan commented 3 years ago

Hello @fayilt ,

Since our last conversation, we haven't heard from you!

Don't hesitate to contact us if you have any questions.

Best regards,

Jon