2011-10-27 11 views
3

エンティティからエンティティの数を判断する最良の方法は何ですか?bizlogicからデタッチされたエンティティを返しました。エンティティへのLinq - エンティティからエンティティセットの数を判断する最良の方法は何ですか

ここで、多対多の関係にあるエンティティセットの数を確認したいと考えています。

現時点では私のコードは次のようになります。

context.Attach(entity); 
entity.entityset.Load(); 
int count entity.entityset.count(); 

あり、この単純な例によりですが、今のところ、私はちょうど私が最も効率的な方法でentitysetsの数を抽出する方法を知りたいです。上記の例は、Linqのエンティティへの基本を誤解していない限り、レコード数を決定する前にエンティティセットレコードの全リストをロードしているという印象を与えてくれます。あなたは直接のナビゲーションプロパティを使用することができた場合は、Count()は、このSQLに変換されるべき

答えて

0

(私はこれに新しい、ネットティア出身):

SELECT COUNT(*) AS [value] 
FROM [entityset] AS [t0] 

私は確かに知らないが、私はまた、Load()がセット全体を最初にメモリにロードするという印象を得る。This question is similar、その中で彼らは再装着するエンティティであり、その後、ナビゲーションプロパティが正しく動作するために取得しようとしている:だから:)

編集することをやっていないしてみてください。それは適用可能かもしれない。

+0

私はすべてのコストをかけて負荷を避けようとしましたが、これ以外の方法はありません。ナビゲーションプロパティで何を意味するのかよくわからないのですが、entity.entityset(エンティティセットはナビゲーションプロパティです)ですか?それ以外の場合は常にゼロカウントで動作するように最初にロードする必要があります。 (Linqからエンティティまでまだ新しいです) – Rob

+0

@Rob:そうです、それはナビゲーションプロパティです。このようにして 'context.EntitySet.Where(es => es.EntityId == entity.Id).Count()'というようにクエリを書き直せますか?この質問への回答を問題に適用することもできます。http://stackoverflow.com/questions/5472254/reloading-navigation-properties-after-detaching-a-new-object –

+0

5472254が役立つかどうかわかりませんが、ごめんなさい。私は文脈を見ることができません.EntitySet?私はcontext.Entityとcontext.Entity.EntitySetを参照してください。 – Rob

関連する問題