Странное поведение LINQ to SQL (BUG?) - PullRequest
1 голос
/ 22 декабря 2009

У нас очень странная проблема с кодом LINQ to SQL.

Рассмотрим этот фрагмент кода:

var wissen = db.Table.Where(f => f.Name == somevalue);
db.Table.DeleteAllOnSubmit(wissen);
db.SubmitChanges();

Это работает, как и ожидалось, на наших серверах разработчиков, но когда мы внедряем это на наш производственный сервер, оно не выдает никаких ошибок, но ничего не удаляет и даже не должно.

Когда мы заменим этот код следующим:

db.ExecuteCommand("DELETE FROM Table WHERE Name = {0}", somevalue);

вещь работает просто отлично.

Обходной путь работает просто отлично, но мы будем рады узнать, что именно идет не так.

Ждем ваших комментариев:)

Dieter

Ответы [ 2 ]

2 голосов
/ 22 декабря 2009

Вы пытались выполнить трассировку SQL Profiler на рабочей машине, чтобы выяснить, какой SQL отправляется?

Это должно помочь вам решить проблему.

1 голос
/ 22 декабря 2009

Является ли db a System.Data.Linq.DataContext? Если нет, попробуйте использовать один. Если это так, вызовите db.Log = Console.Out после создания экземпляра, и он отправит весь сгенерированный SQL на выходную консоль Visual Studio. Это должно показать, что идет не так.

Если вы не можете запустить VS на сервере, зарегистрируйте вывод в текстовый файл:

StreamWriter sw = new StreamWriter(pathToLogFile);
db.Log = sw;
// do your queries here
sw.Flush();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...