2016-08-05 92 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); 

的其中clausule給出誤差限定的導航屬性「包含路徑表達式必須引用的類型所定義的導航屬性」。我看過有這個錯誤的帖子,但他們不適合這個。我不知道如何以適當的方式寫我的lambda。有人可以幫忙嗎?EF:包含路徑表達式必須引用的類型

+0

如果'scoring_id'是從'scoring_parameter'到'scoring'的FK,並且您正確配置了映射,那麼where子句是多餘的。只要嘗試一下,不要在哪裏。 –

回答

0

不能像這樣過濾包含的數據。 Include用於告訴EntityFramework要加載哪些數據。如果scoring_parameters.scoring_idscoring.scoring_id是相互關聯的,那麼你可以嘗試這樣的:

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也是一個導航屬性。

相關問題