1

私は次のような ObjectQuery を構築しています:

        string query = "select value obj from Entities.Class as obj " +
                       "where obj.Property = @Value";

        ObjectQuery<Class> oQuery = new ObjectQuery<Class>(query, EntityContext.Instance);
        oQuery.Parameters.Add(new ObjectParameter("Value", someVariable));

このオブジェクトをコントロールの DataSource として割り当てたり、foreach ループで反復処理したり、List にマテリアライズを強制したりできますが、マテリアライズを強制せずに、返されるオブジェクトの数を数えることはできますか?

count() を実行するコンパニオン クエリを作成する必要がありますか? または、それを実行する関数がどこかにありますか?

ありがとうございました。

4

3 に答える 3

3

ObjectQuery<T>を実装IQueryable<T>しているので、単純に拡張メソッドを使用することはできません:

int count = oQuery.Count();

これを実行するとどうなりますか?クエリ全体で Count() を実行するだけだと思っていたでしょう... (私は多くの EF を実行したわけではありません...)。

于 2008-10-21T12:15:50.833 に答える
1

ObjectQuery<T> クラスは、Count() メソッドをサポートする IEnumerable<T> インターフェイスを実装します。

これから何が得られますか?

int count = oQuery.Count();
于 2008-10-21T12:16:39.583 に答える
0

カウントが 1 未満の場合は、新しいレコードが見つかりました。そうでない場合は、既にそのレコードがあります。

于 2010-03-02T14:44:35.960 に答える