2009-12-22 3 views
1

У нас есть эта очень странная проблема в LINQ to SQL Code.Странное поведение LINQ to SQL (BUG?)

Рассмотрим следующий фрагмент кода:

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

+0

Если вы уронили контрольную точку там, а затем посмотреть на «Wissen», у него есть какой-либо членов при работе с производственным сервером? Это было бы моим первым предположением. – AlecZorab

ответ

2

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

Это поможет вам устранить эту проблему.

1

Факс: 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(); 
+0

+1 log L2S ​​вывод в файл – jeroenh

Смежные вопросы