我们在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);
事情很好。
解决方法很好,但我们很乐意知道到底出了什么问题。
期待您的意见:)
迪特
答案 0 :(得分:2)
您是否尝试在生产计算机上执行 SQL Profiler 跟踪以找出正在发出的SQL?
这可以帮助您解决问题。
答案 1 :(得分:1)
db
是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();