2016-04-18 4 views
1

Я использую следующие Linq запросов:Используйте .Contains() в EF 6

var projectList = from p in dbContext.vw_Projektkontrolle 
         where p.TXT_Adress1.Contains(filterTxt) 
         orderby p.TXT_Name 
         select p; 

Мои projectList всегда нуль. В отладке я вижу, что filterTxt является, например, «testcompany».

Содержит метод Содержит все еще в EF 6 или есть какая-либо работа вокруг?

Я прохожу filterTxt через форму Post для метода действий в моем приложении MVC.

как исправить эту проблему.

EDIT: это работает, когда я использую только один char f.ex: "а", как filterTxt.

Но TXT_Adress1 и filterTxt оба объявлены как строки

+1

Содержит здесь метод String и не связан с каркасом сущности. Убедитесь, что dbContext.vw_Projektkontrolle содержит элементы с TXT_Adress1, содержащий текст фильтра. – MNF

+0

Вы пытались использовать выражение Лямбда? Что-то вроде 'var projectList = dbContext.vw_Projektkontrolle.Where (x => x.TXT_Adress1.Contains (filterTxt)). OrderBy (o => o.TXT_Name) .ToList();' –

+2

Я пробовал Lambda, и результат был тоже самое. Ничего. Я абсолютно уверен, что TXT_Adress1 имеет filterTxt в нем, поэтому мне интересно, почему он doeasnt присоединяет фильтр к строке. @SelvaTS – G43beli

ответ

2

метод String.Contains переводит:

CHARINDEX(ShowTypeDescriptio, @showTypeDescription) > 0 

может попытаться использовать нижний регистр:

var projectList = from p in dbContext.vw_Projektkontrolle 
        where p.TXT_Adress1.ToLower().Contains(filterTxt.ToLower()) 
        orderby p.TXT_Name 
        select p; 

И даже если он работает, вы можете столкнуться Turkey Test выпуск

+2

Это сработало! Я попробовал это с помощью toUpper(), и это не сработало. Thx человек, ты мне очень помог :) – G43beli

Смежные вопросы