При использовании оператора DeleteAllOnSubmit, подобного следующему (я опускаю DataContext, потому что здесь я использую LinqPad)
var deleteUs = Foo.Take(9658);
Foo.DeleteAllOnSubmit(deleteUs);
SubmitChanges();
результирующий код SQL выглядит так:
SELECT TOP (9658) [t0].[id] FROM [Foo] AS [t0]
GO
-- Region Parameters
DECLARE @p0 Int SET @p0 = 1
-- EndRegion
DELETE FROM [Foo] WHERE [id] = @p0
GO
-- Region Parameters
DECLARE @p0 Int SET @p0 = 2
-- EndRegion
DELETE FROM [Foo] WHERE [id] = @p0
GO
... and so on
Строка 2 в коде c # не может знать, что строка 1 преобразуется в оператор SELECT TOP и что было бы намного быстрее использовать оператор DELETE TOP.
Вопрос : как это сделатьЯ работаю над этим, не прибегая к SQL?Есть ли способ заставить операторы Linq транслироваться в DELETE TOP или что-то подобное?