2013-09-25 2 views
1

У меня есть исключение выше кольца в моем коде. То, что я пытаюсь это использовать, где положение с переменным списком, и именно поэтому я использую Содержит метод, но я получаю сообщение об ошибке, и я не могу понять, что я делаю неправильноLINQ - to Entities не распознает метод system.string ToString() exception

List<string> TouristID = (List<string>)Session["TouristID"]; 
    List<Tourist> customerInterests = (from tourist in db2.Tourist 
          where (TouristID.Contains(tourist.Tourist_ID.ToString())) 
          select tourist).ToList(); 

foreach (var customer in customerInterests) 
{ 
    String strName_kir = customer.Name_kir; 
    String Lastname_kir = customer.Midname_kir; 
} 
+0

Какая ошибка? –

+0

Сделайте свой 'Список ' a 'List ', а затем отпустите вызов '.ToString()', и все должно быть в порядке. –

+0

Спасибо, Андрей, я уже это сделал :) –

ответ

1

ToString() метод не оценивается Linq для лиц, потому что он не может быть переведен на SQL.

Попробуйте изменить тип своего списка на тип адресата или проанализировать его в новом списке.

3

вы не можете использовать .ToString() внутри выражения LinqToSql потому что он попытается перевести его на SQL

+0

спасибо! Я действительно сон, и даже не вижу, что я пишу. Еще раз спасибо –

2

Вы не можете использовать ToString или любые другие методы, которые не могут быть переведены на SQL.

Вы должны быть в состоянии сделать следующее:

List<string> TouristID = (List<string>)Session["TouristID"]; 

//Get them as integers 
var touristIds = TouristID.Select(x => int.Parse(x)); 

List<Tourist> customerInterests = (from tourist in db2.Tourist 
         where (touristIds.Contains(tourist.Tourist_ID)) 
         select tourist).ToList(); 
Смежные вопросы