2012-07-25 81 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,其中显示了调用该类中其他扩展方法的几个示例。