Проблема была решена путем переименования столбца 'seanceNumber' в 'seancenumber' в таблице.
«Имена столбцов в SQL обычно нечувствительны к регистру, поэтому не имеет значения, запрашиваете ли вы seance, SEANCE или SeAnCe. Однако, если вы помещаете имена столбцов в двойные кавычки, они становятся чувствительными к регистру - я думаю, ваши UserMapper сделал именно это и запросил столбец с именем «seanceNumber», а база данных не смогла его найти (поскольку в базе данных он называется seancenumber или SEANCENUMBER). "
Вы могли бы написать сохраненную процедуру, которая выполняет удаление и вызывает ее из LINQ. Удаление на основе набора, вероятно, в целом быстрее, но если оно затрагивает слишком много записей, вы можете вызвать проблемы с блокировкой, и вам может потребоваться гибрид перебора наборов записей (возможно, 2000 за раз, размер зависит от вашей структуры базы данных, но 2000 - это начальное место, если вы обнаружите, что дельта на основе набора занимает так много времени, что влияет на другое использование таблицы), чтобы выполнить удаление.
Некоторое время назад я написал серию блогов из 4 частей (Части 1 , 2 , 3 и 4 ), охватывающих выполнение массовых обновлений (с помощью одной команды) в Entity Framework.
Хотя основное внимание в этой серии было уделено обновлению, вы определенно могли использовать принципы, используемые для удаления.
Итак, вы должны иметь возможность написать что-то вроде этого:
var query = from c in ctx.Customers
where c.SalesPerson.Email == "..."
select c;
query.Delete();
Все, что вам нужно сделать, это реализовать метод расширения Delete (). См. Серию сообщений, чтобы узнать, как ...
Надеюсь, это поможет
Я знаю о методе DeleteAllOnSubmit любого контекста данных, который удалит все записи в запросе. В основе должна быть некоторая оптимизация, поскольку удаляется много объектов. Хотя я не уверен.
Я не уверен, насколько это эффективно, но вы можете попробовать что-то вроде этого:
// deletes all "People" with the name "Joe"
var mypeople = from p in myDataContext.People
where p.Name == "Joe";
select p;
myDataContext.People.DeleteAllOnSubmit(mypeople);
myDataContext.SubmitChanges();
Здесь я вижу ответы: Linq to Sql
DeleteAllOnSubmit является частью System.Data.Linq и ITable, которые являются Linq to Sql
Этого нельзя сделать с Entity Framework.
Сказав все это, у меня еще нет решения, но я отправлю его, когда сделаю