2015-03-17 2 views
2

Как сравнить значение char в linq. что я делаю, не работает, может кто-нибудь подскажет мне, что не так с моим кодом. моя колонкаСравнить char в linq

public char MarketingType {get; задавать; }

и размер столбца в базе данных 1

public List<Marketing> MarketVideo { get; set; } 
var debs = from s in iMarketingService.GetMarketingContents() 
          select s; 
viewModelMarketing.MarketVideo = debs.Where(t => t.MarketingType =='v').ToList(); 

выше условия не работает и показывает мне пустой список, но когда я сравнить его с другим столбцом целого типа, как показано ниже это работает хорошо для меня.

viewModelMarketing.MarketVideo = debs.Where(t => t.AddeddBy == 2).ToList(); 

любые предложения или помощь будут оценены. спасибо

+3

Является ли это возможно, прописные 'V'? – Jamiec

+1

Какую базу вы используете? Я думаю, что 'CHAR (1)' означает __string__ длины один, а не отдельный 'char'. Поэтому сравнение «char» не соответствует действительности. – ryanyuyu

+0

@Jamiec no это нижний регистр v – Miranda

ответ

2

я думаю, обугливаюсь 1 означает строку длина одного.

так что вы можете изменить его на

public string MarketingType { get; set; } 

и ваше состояние должно быть

debs.Where(t => t.MarketingType.Equals("v")).ToList(); 
0

Попробуйте это:

public List<Marketing> MarketVideo { get; set; } 
var debs = from s in iMarketingService.GetMarketingContents() 
         select s; 
viewModelMarketing.MarketVideo = debs.Where(t => t.MarketingType.ToLowerInvariant() =="v").ToList(); 
+0

Я получаю сообщение об ошибке без перегрузки для метода ToLowerInvariant() принимает 0 аргумент – Miranda

+0

Попробуйте: .ToLower() вместо этого ... Но это странно btw – Pouki

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