2016-08-19 8 views
0

WEB APIフィルタリングする方法子のコレクションEntity Frameworkの

モデル::

public class Empresa 
{ 
    [Key] 
    public string CDEmpresa { get; set; } 

    public string NomeFantasia { get; set; } 

    [IgnoreDataMember] 
    public string Nome{ get; set; } 

    public List<EmpresaRamoAtividade> EmpresaRamoAtividade { get; set; } 
} 

public class EmpresaRamoAtividade 
{ 
    [Key] 
    public int CTRamoAtividade { get; set; } 

    [IgnoreDataMember] 
    public string CDEmpresa { get; set; } 

    public List<RamoAtividade> RamoAtividade { get; set; } 
} 


public class RamoAtividade 
{ 
    [IgnoreDataMember] 
    [Key] 
    public int CTRamoAtividadeTraducao { get; set; } 

    public int CTRamoAtividade { get; set; } 

    public string Atividade { get; set; } 

    public int Idioma { get; set; } 
} 

コントローラ::

がOKの作業:::

{ 
    return db.Empresas 
    .Where(a => a.Associado.IsAssociado) 
    .Include(empresaRamo => empresaRamo.EmpresaRamoAtividade) 
    .Include(ramo => ramo.EmpresaRamoAtividade.Select(atividade =>  atividade.RamoAtividade)); 
}  

が機能していない

は、私が持っています"イディオム"(言語)でフィルタする:::

{ 
    return db.Empresas 
    .Where(a => a.Associado.IsAssociado) 
    .Include(empresaRamo => empresaRamo.EmpresaRamoAtividade) 
    .Include(ramo => ramo.EmpresaRamoAtividade.Select(atividade => atividade.RamoAtividade.Where(idioma => idioma.Idioma == 1))); 
} 

エラー:

The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties. Parameter name: path

私は3レベルのコレクションの子をフィルタリングすることができませんか? ありがとうございます..

答えて

0

Includeメソッドを使用してフィルタリングすることはできません。 selectだけをサポートしています。

免責事項

{ 
    return db.Empresas 
    .Where(a => a.Associado.IsAssociado) 
    .IncludeFilter(empresaRamo => empresaRamo.EmpresaRamoAtividade) 
    .IncludeFilter(ramo => ramo.EmpresaRamoAtividade.Select(atividade => atividade.RamoAtividade.Where(idioma => idioma.Idioma == 1))); 
} 

あなたがドキュメントにhere

+0

を見つけることができます:私はあなたが簡単に関連するエンティティをフィルタリングできるようにするプロジェクトEntity Framework Plus (EF+)

EF +クエリIncludeFilterの持ち主ですありがとう、私はEF +をチェックします.. –

関連する問題