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

问题描述:

我们对LINQ to SQL代码有这个非常奇怪的问题。奇怪的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); 

事情的工作就好了。

该解决方法工作得很好,但我们很乐意知道究竟出了什么问题。

期待您的意见:)

迪特

+0

如果您在那里下降一个断点,然后看看“WISSEN”,它有什么成员在运行生产服务器时运行?这是我的第一个猜测。 – AlecZorab 2009-12-22 18:14:02

您是否尝试过做生产机器上的SQL事件探查器跟踪来找出哪些正在发出SQL?

这应该可以帮助您解决问题。

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日志L2S输出到文件 – jeroenh 2009-12-26 22:11:36