2011-12-26 2 views
0

私は次のような状況に陥った。私はDeliverersPromotionsDelivererIdPromotions(外来キー)にリンクされたテーブルを持っています。私のMVCアプリでは、私は単純に、このコードでプロモーションの一覧を表示します。私は(別のテーブルにSELECT COUNT(*))動的に計算された別の列を追加するように頼まれたビューのナビゲーションプロパティ

    promotions = db.Promotions. 
        Include("Deliverers1"). 
        Where(p => p.WeekNo == currentWeek). 
        OrderByDescending(p => p.WeekNo); 

。私の解決策は、select *, count(....) from Promotions ...というビューを作成することでした。

問題は、ビューにDeliverers1ナビゲーションプロパティがなく、追加方法がわかりません。助言がありますか?

答えて

0

別のテーブルには、このエンティティのプロパティナビゲーションの場合:

var promotions = db.Promotions. 
        Include("Deliverers1"). 
        Where(p => p.WeekNo == currentWeek). 
        OrderByDescending(p => p.WeekNo) 
        .Select(p=>new {p,p.Count(...)); 

ていない場合は、プロパティナビゲーション:

var promotions = db.Promotions. 
        Include("Deliverers1"). 
        Where(p => p.WeekNo == currentWeek). 
        OrderByDescending(p => p.WeekNo) 
        .Select(p=>new {p,db.othertable.Where(q=>q.foo==p.foo).Count()); 
+0

ありがとう、しかし、2つの質問:1)SQLの結果がどのようなものです - 参加? 2)結果として、私は匿名のタイプを取得します。 MVCビューを強く型付けすることを希望します。 – Marcin

+0

生成されたSQLをhttp://code.google.com/p/mvc-mini-profiler/で調べることができます。これはEFコードを最初にサポートしています。それはナゲットパッケージを介してそれをチェックアウトします。 –

+0

あなたがintelitraceクエリで見ることができることは確かに結合です、もしあなたの強い型がFooならば、p => new Foo {...}と書く必要があります。 –

関連する問題