奇怪的LINQ to SQL行为(BUG?)

时间:2009-12-22 17:39:36

标签: linq linq-to-sql

我们在LINQ to SQL Code上遇到了这个非常奇怪的问题。

请考虑以下代码段:

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

这在我们的开发服务器上按预期工作,但是当我们将它部署到我们的生产服务器时,它不会给出任何错误,但它不会删除任何内容,但它不应该删除任何错误。

当我们用以下代码替换此代码时:

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

事情很好。

解决方法很好,但我们很乐意知道到底出了什么问题。

期待您的意见:)

迪特

2 个答案:

答案 0 :(得分:2)

您是否尝试在生产计算机上执行 SQL Profiler 跟踪以找出正在发出的SQL?

这可以帮助您解决问题。

答案 1 :(得分:1)

dbSystem.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();