2012-07-25 128 views
2

我試圖將一個項目轉移到使用實體框架,但爲了使它更有趣,該項目使用C++/CLR。來自託管C++/CLI的ObjectQuery擴展

我有一個查詢

ObjectQuery<myData::Facility^>^ facQ = myContext->FacilitySet; 

,我想這樣做

int n = facQ.Count() 

但我不能,因爲C++不認識到使用C#語法擴展方法。 facQ-> Count()不起作用。

Using C# extension methods from managed C++/CLI顯示用戶定義擴展的答案;但在這種情況下,該擴展是.NET框架http://msdn.microsoft.com/en-us/library/bb349034%28v=vs.90%29.aspx的一部分。

任何想法?

(我正在使用visual studio 2008和.NET 3.5)。

+0

你只需要找到靜態方法在 – 2012-07-25 05:12:26

+0

@YochaiTimmer中定義的名稱空間和類,我該怎麼做?它不在MSDN頁面上,並且System :: Data :: Objects :: ObjectQuery似乎沒有它。 – Melanie 2012-07-25 05:14:51

回答

2

System :: Data :: Objects :: ObjectQuery implements IEnumerable<T>。您在C#中看到的Count()方法來自System :: Linq :: Enumerable類。

using namespace System::Linq; 

int n = Enumerable::Count(facQ); 

另請參閱this answer,其中顯示了調用該類中其他擴展方法的幾個示例。