2

プロジェクトを Entity Framework を使用するように移行しようとしていますが、より楽しくするために、プロジェクトは C++/CLR です。

問い合わせがあります

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

そして私はこれをしたい

int n = facQ.Count()

しかし、C++ は C# 構文を使用した拡張メソッドを認識しないため、できません。facQ->Count() は機能しません。

マネージ C++/CLI から C# 拡張メソッドを使用すると、ユーザー定義の拡張に対する答えが示されます。ただし、この場合、拡張機能は .NET フレームワークhttp://msdn.microsoft.com/en-us/library/bb349034%28v=vs.90%29.aspxの一部です。

何か案は?

(私は Visual Studio 2008 と .NET 3.5 を使用しています)。

4

1 に答える 1

2

System::Data::Objects::ObjectQuery は を実装しIEnumerable<T>ます。C# で見られる Count() メソッドは、System::Linq::Enumerable クラスからのものです。

using namespace System::Linq;

int n = Enumerable::Count(facQ);

この回答も参照してください。これは、そのクラスで他の拡張メソッドを呼び出すいくつかの例を示しています。

于 2012-07-25T17:21:54.280 に答える