2011-03-30 29 views
0

我试图安装linq visualizer调试器,但它似乎不工作。找不到如何从Linq显示生成的SQL

我试图找到上下文的.Log属性和.GetCommand()方法,但我无法找到我的哪些对象是上下文。

public static DATAGESTIONDataSet FillDataSet_Tb_Activite() 
    { 
     var cn = new OleDbConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ImportSerce.Properties.Settings.DATAGESTIONConnectionString"].ToString()); 
     var cmd = new OleDbCommand("SELECT * FROM [Tb_Activite]", cn); 
     var da = new OleDbDataAdapter(cmd); 
     var tds = new data.DATAGESTIONDataSet(); // the DATAGESTIONDataSet() is a xsd file, modeled after a MS Access database 
     da.Fill(tds, tds.Tb_Activite.TableName); 
     cn.Close(); 
     cn.Dispose(); 
     return tds; 
    } 

而在Main()方法:

 var dsActivites = FillDataSet_Tb_Activite(); 
     var activitesSoc = from s in dsActivites.Tb_Activite 
           where s.Code.ToLower().StartsWith("w") 
           select s.Ident; 

在其中我的对象,我应该找到日志属性或方法GetCommand?

感谢

回答

3

log是在DataContext

http://msdn.microsoft.com/en-us/library/bb386961.aspx

你也可以运行你的LINQ to SQL代码在linqpad查看生成的SQL。

或使用SQL Profiler来查看针对您的数据库运行的SQL。

更新

然而,在这种情况下,你是不是产生使用LINQ任何SQL。您直接使用ADO.Net来填充您的数据集。 SELECT * FROM [Tb_Activite]正在返回整个表格,此后您将使用linq到对象或linq到数据集来查询本地内存数据。这就是为什么你找不到DataContext - 你没有。

+0

我不太清楚这将如何帮助他'数据集' – Marc 2011-03-30 13:15:31

+0

@马克 - 好点,我没有正确地阅读这个问题。我已经更新了我的答案。 – 2011-03-30 13:24:27

+0

+1 - 对于海报造成的问题,这是一个很好的答案,即使它不适用于这种情况。我自己推荐SQL Profiler(并且会向OP明确表示他所有的代码都是在选择一个表格。) – Hogan 2011-03-30 13:27:11