2011-11-09 4 views
0

LoadPropertyまたはIncludeは、プリンシパルエンティティからのすべての関連する行を取得します。 LoadProperty呼び出しから取得した行をどのようにフィルタリングできますか?私はDBからのデータ復旧の後処理をしたくないでしょう。LoadPropertyのフィルタまたはインクルード

私の場合は、私が唯一の「TipoReforma」が、関連情報がものだけであるidioma「×」である必要があります場合は、この

public Expression<Func<TipoReforma, bool>> predicadoFiltroIdioma(String filtro) 
    { 
    return x => x.DetalleTipoReforma.Any(y=>filtro.Contains(y.Idioma.idioma)); 
    } 


IEnumerable<T> resultado = objectSet.Where<T>(predicadoFiltroIdioma("en"); 
Contexto.LoadProperty(resultado.ToList()[0], "DetalleTipoReforma"); 

のようなものです。事前に

おかげで、

答えて

0

LoadPropertyまたはIncludeどちらもサポートフィルタリング=彼らは常に、すべての関連エンティティをロードします。あなたは別のアプローチを使用する必要があります。 CreateSourceQueryを試してみてください。次のようなものがあります。

var data = ((EntityCollection<TipoReforma>)resultado.ToList[0].DetalleTipReforma) 
       .CreateSourceQuery().OrderBy(predicadoFiltroIdioma).ToList(); 

また、プリンシパルエンティティのナビゲーションプロパティも入力する必要があります。また、このコードを実行する前に、遅延ロードがオフになっていることを確認してください。

関連する問題