2016-08-05 3 views
0
var context = context.MyEntity 
.include(e => e.something) 
.Include(e => e.scoring 
    .Select(sc=>sc.scoring_parameters 
     //This is problem 
     .Where(scp =>scp.scoring_id == sc.scoring_id) 
     .Select(scp =>scp.cis_scoring_parameters.cis_scoring_parameters_tabs))) 
.include(e => e.something_else) 
.FirstOrDefault(e => e.id == _id); 

Where clausuleでエラーが発生しました "インクルードパス式はタイプに定義されたナビゲーションプロパティを参照する必要があります。私はこのエラーで投稿を見たことがありますが、これはこれに適合しません。私はラムダを正しい方法で書く方法を知らない。助けてもらえますか?EF:インクルードパス式は、タイプに定義されたナビゲーションプロパティを参照する必要があります

+0

'scoring_id'が' scoring_parameter'から 'scoring'までのFKで、マッピングを正しく設定した場合、where節は冗長です。ちょうどその部分を使わずに試してみてください。 –

答えて

0

このようなインクルードのデータをフィルタリングすることはできません。 Includeは、どのデータを読み込むかをEntityFrameworkに指示するために使用されます。

var context = context.MyEntity 
    .include(e => e.something) 
    .Include(e => e.scoring 
     .Select(sc=>sc.scoring_parameters.Select(scp => scp.cis_scoring_parameters.cis_scoring_parameters_tabs))) 
    .include(e => e.something_else) 
    .FirstOrDefault(e => e.id == _id); 

私はscp.cis_scoring_parameters.cis_scoring_parameters_tabsもナビゲーションプロパティであると仮定:scoring_parameters.scoring_idscoring.scoring_idが相互に関連している場合、あなたのような何かを試すことができます。

関連する問題