【问题标题】:ObjectQuery extensions from managed C++/CLI来自托管 C++/CLI 的 ObjectQuery 扩展
【发布时间】:2012-07-25 05:01:23
【问题描述】:

我正在尝试将一个项目转移到使用实体框架,但为了让它更有趣,该项目使用 C++/CLR。

我有一个问题

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)。

【问题讨论】:

  • 你只需要找到定义静态方法的命名空间和类
  • @YochaiTimmer 好的,我该怎么做?它不在 MSDN 页面上,而且 System::Data::Objects::ObjectQuery 似乎没有。

标签: visual-c++ c++-cli


【解决方案1】:

System::Data::Objects::ObjectQuery 实现IEnumerable&lt;T&gt;。您在 C# 中看到的 Count() 方法来自 System::Linq::Enumerable 类。

using namespace System::Linq;

int n = Enumerable::Count(facQ);

另请参阅this answer,其中显示了在该类中调用其他扩展方法的几个示例。

【讨论】:

    猜你喜欢
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多