我正在尝试将项目移至使用Entity Framework,但为了使其更有趣,该项目采用C ++ / CLR。
我有一个查询
ObjectQuery<myData::Facility^>^ facQ = myContext->FacilitySet;
我想要这样做
int n = facQ.Count()
但我不能,因为c ++不能识别使用C#语法的扩展方法。 facQ-&gt; 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 :(得分:2)
System :: Data :: Objects :: ObjectQuery实现IEnumerable<T>
。您在C#中看到的Count()方法来自System :: Linq :: Enumerable类。
using namespace System::Linq;
int n = Enumerable::Count(facQ);
另请参阅this answer,其中显示了在该类中调用其他扩展方法的几个示例。