2011-11-15 21 views
1

我有一個EF4.1數據庫第一個應用程序,而.ToString()方法只給我反射類型,and not the SQL query顯示SQL命令與EF4.1的ToString()

如何讓我的應用程序向我顯示SQL格式的Linq查詢?

我已將C:\Program Files (x86)\Microsoft ADO.NET Entity Framework 4.1\Binaries\EntityFramework.dll的4.1版本添加到我的項目中。我猜ToString功能是通過擴展方法添加的,但即使添加「Using system.data.Entity」,我也無法讓字符串輸出正常工作。

這是否意味着ToString僅適用於Code First部署?

public IEnumerable<CompanyDetail> GetAllCompanies(int? startPage, int? stopPage, string Filter, int? MaxResults) 
    { 
     var t = from c in _entities.CompanyDetail 
       select c; 

     string test = t.ToString(); 

     var t2 = _entities.CompanyDetail; 

     string test2 = t2.ToString(); 
     return t.ToList(); 
    } 

回答

1

我可以證實它適用於數據庫的首批應用。

我猜你的代碼仍在使用EF 4類,因爲你沒有提到將EF 4.1 DbContext生成器添加到模型中。如果是這種情況,可以右鍵單擊模型,選擇「添加代碼生成項目...」並選擇ADO.NET C#DbContext生成器。如果您沒有在安裝的模板中看到它,請在聯機模板下查找它。

+0

我真的不知道如果沒有S.O.我會做什麼。我花了幾個小時在VS和在線上尋找這個。很多欣賞的人 – LamonteCristo

+0

似乎EF4.1中可能存在一個bug,可能是Appfabric緩存的反射問題(或實現問題)http://stackoverflow.com/q/8131195/328397 ...如果你想知道... – LamonteCristo