2012-01-20 13 views
1

linqオブジェクトが別のテーブルから参照されているかどうかを確認する最速の方法は何ですか?ノーマリー私はこの方法を行うが、私はこれは大きなテーブルでは遅くなるかもしれないと思う。linqオブジェクトが参照されているかどうかをチェック

CurrentObject.ReferencingObjects.Count != 0 

これはもっと速いかもしれません。

CurrentObject.ReferencingObjects.FirstOrDefault() != null 

良い方法はありますか?

答えて

2

た場合(ほとんどの実装用)Countが頻繁に直接保存されているとして、最初のオプションは、実際に速い可能性がある(それはCountプロパティを持っていることを考えるように見えます)ので、これは事実だけでReferencingObjects実装ICollection<T>フィールドを直接探しているプロパティ。

しかし、あなたはEnumerable.Count()(メソッドではなくプロパティ)を使用していた、場合は、その後、私の好ましい方法は、代わりに使用することです:

CurrentObject.ReferencingObjects.Any(); 

Any()方法は非常に明確に自分の意思を示しているように、またまた、一般的に非常に迅速です。

関連する問題