如何使用Contains使用EntityFramework选择特定数据

时间:2016-10-09 21:37:10

标签: c# asp.net-mvc entity-framework

我需要制作一个包含许多关联条件的列表并且对我来说很好,但是现在我想列出我的数据库的特定行,我试图使用Contains但它没有& #39;为我工作,到目前为止我得到了这个:

var query = context.anuncio.Where(w =>
                       w.usuarios.cidade.nome_cidade == search.Cidade
                    && w.usuarios.regiao.nome_regiao == search.Regiao
                    && w.usuarios.cidade.estado.nome_estado == search.Estado
                    && w.usuarios.cidade.estado.pais.nome_pais == search.Pais
                    && w.categoria_mestre.nome_categoria_mestre == search.CategoriaMestre
                    && w.categoria.nome_categoria == search.Categoria
                    && search.Pesquisa.Contains(w.titulo_anuncio)
                    && w.sub_categoria.nome_sub_categoria == search.SubCategoria).
                    Select(a => new {.....

我尝试选择与自定义搜索匹配的项目。

search对象仅定义了字符串属性:

public class Search
{
    public string Pais { get { return "Brasil"; }  }
    public string Regiao { get; set; }
    public string Cidade { get; set; }
    public string Estado { get; set; }
    public string CategoriaMestre { get; set; }
    public string Categoria { get; set; }
    public string SubCategoria { get; set; }
    public string Pesquisa { get; set; }


}

我传递给查询的值:

"Regiao":"GRANDE RECIFE",
"Cidade":"Jaboatão dos Guararapes",
"Estado":"PERNAMBUCO",
"CategoriaMestre":"",
"Categoria":"",
"SubCategoria":"",
"Pesquisa":"Iphone"

DataBase中记录的值:

当我使用nome_regiaonome_cidadenome_paisnome_estado中的静态值进行查询时,我有这个值!

"id_anuncio": 4,
"titulo_anuncio": "Vendo Iphone 5s ",
"descricao_anuncio": "Iphone 5s novo desbloqueado",
"imagem1": "2",
"valor_produto": 2500,
"data_publicacao": "2016-10-09T12:36:38.193",
"nome_usuario": "Nathiel Barros",
"num_celular": "8188812011",
"CEP": "54315310",
"nome_regiao": "GRANDE RECIFE",
"nome_cidade": "Jaboatão dos Guararapes",
"nome_estado": "PERNAMBUCO",
"nome_pais": "BRASIL",
"tipo_produto": "NOVO",
"id_usuario": 1

我想列出与" iphone"有关的所有内容。 titulo_anuncio

中的单词

1 个答案:

答案 0 :(得分:0)

// Contains linq

     var query = context.anuncio.Where(w =>
                   w.usuarios.cidade.nome_cidade.Contains(search.Cidade)
                && w.usuarios.regiao.nome_regiao.Contains( search.Regiao)
          )