#c# #asp.net-mvc #entity-framework
#c# #asp.net-mvc #entity-framework
Вопрос:
Мне нужно составить список с условиями со многими отношениями, и он отлично работает для меня, но теперь я хочу составить список для определенной строки моей базы данных, я пытаюсь использовать Contains
, но у меня это не работает, пока я получил это :
var query = context.anuncio.Where(w =>
w.usuarios.cidade.nome_cidade == search.Cidade
amp;amp; w.usuarios.regiao.nome_regiao == search.Regiao
amp;amp; w.usuarios.cidade.estado.nome_estado == search.Estado
amp;amp; w.usuarios.cidade.estado.pais.nome_pais == search.Pais
amp;amp; w.categoria_mestre.nome_categoria_mestre == search.CategoriaMestre
amp;amp; w.categoria.nome_categoria == search.Categoria
amp;amp; search.Pesquisa.Contains(w.titulo_anuncio)
amp;amp; 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"
Значения, которые записываются в базу данных :
Когда я делаю запрос со статическими значениями в 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
И я хочу перечислить все, что связано со словом «iphone» внутри titulo_anuncio
Комментарии:
1.
search
не может быть typeofstring
, если он содержит такие свойства, какCidade
,Regiao
и т.д. Покажите свои модели.2. Какое сообщение об ошибке появляется, когда вы говорите, что оно у вас не работает?
3. @CodeNotFound У меня нет возврата!
4. Поскольку
search.Pesquisa
этоstring
так, почему вы просто не используетеamp;amp; w.titulo_anuncio== search.Pesquisa
(или вы хотите фильтровать результаты, в которых значениеtitulo_anuncio
содержит некоторые символыPesquisa
?)5. @StephenMuecke Точно! Я хочу выполнить поиск по всей таблице всего, что имеет «SearchName» по названию. допустим, это «APPLE IPHONE 6S», и когда я заполняю поисковую строку, я хочу получить что-либо с помощью поиска iphone внутри
titulo_anuncio
titulo_anuncio
Ответ №1:
// Contains linq
var query = context.anuncio.Where(w =>
w.usuarios.cidade.nome_cidade.Contains(search.Cidade)
amp;amp; w.usuarios.regiao.nome_regiao.Contains( search.Regiao)
)
Комментарии:
1. Пожалуйста, объясните свой ответ