2011-07-12 6 views
2

を数えるnavigationproperty多対多I持って、次の2つのエンティティ:LINQは

エンティティ、 EntityRelation Entityクラスは

私の目標は、にあるentity.EntityRelations通じ、関連オブジェクトへのアクセス権を持っている

すべてのEntityオブジェクトのリストと関連するEntityRelationオブジェクトの数を選択します。私はこれを行うことができます。

var results = from e in db.EntitySet.Include("EntityRelations") 
    select e; 

、その後のGridViewでEntityRelations.Countを取得しますが、問題は、これが副選択と結合により、外に行っていないかなりクレイジーSQLを生成しています。私の質問は、私の目標を達成するためのより良い方法はありますか?

私はバックエンドとしてSQL Serverと共に.NET 3.5/VS 2008を使用しています。

答えて

1

あなただけEntityRelationsでEntityRelationsのカウントではなく、他の情報のいずれかを使用している場合は、このような何か行うことができます:

class EntityAndCount 
{ 
    public Entity Entity { get; set; } 
    public int EntityRelationsCount { get; set; } 
} 

戻り、新しいクラス:

は、新しいクラスを作成しますそうですね:

var results = from e in db.EntitySet 
       select new EntityAndCount 
       { 
       Entity = e, 
       EntityRelationsCount = e.EntityRelations.Count() 
       }; 
+0

ありがとうございました。これが私を正しい方向に導いてくれました。私は新しいクラスを作成せずに、gridviewに必要なプロパティのみを持つ匿名型を選択しました - new {Id = e.Id、Name = e.Name、EntityCount = e.EntityRelations.Count} – shawnwall