DeleteOnSubmit
- это функция из DataContext
class = Linq-to-SQL
Вам не нужно загружать элемент перед его удалением.Достаточно, если вы знаете его ключ.Примерно так должно работать:
var item = new Item { Id = someId };
context.Items.Attach(item);
context.Items.Remove(item);
context.SaveChanges();
или
var item = new Item { Id = someId };
context.Items.Attach(item);
context.Entry(item).State = EntityState.Deleted;
context.SaveChanges();
Невозможно удалить несколько элементов с помощью EF (кроме каскадного удаления) без указания каждого отдельного элемента, который нужно удалить.Если вы хотите удалить несколько элементов напрямую, вы должны использовать SQL как
context.Database.ExecuteSqlCommand("DELETE ...");