如何使用包含使用EntityFramework选择特定的数据

本文关键字:数据 选择 EntityFramework 何使用 包含使 | 更新日期: 2023-09-27 18:12:12

我需要制作一个具有许多关系的条件列表,对我来说很好,但现在我想列出我的数据库的特定行,我试图使用Contains,但它不适合我,到目前为止我得到了这个:

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; }

}

传递给query的值:

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

DataBase中记录的值:

当我在nome_regiao, nome_cidade, nome_pais, nome_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

我想列出titulo_anuncio

如何使用包含使用EntityFramework选择特定的数据

中所有与iphone有关的内容
// Contains linq
     var query = context.anuncio.Where(w =>
                   w.usuarios.cidade.nome_cidade.Contains(search.Cidade)
                && w.usuarios.regiao.nome_regiao.Contains( search.Regiao)
          )