2013-07-01 13 views
5

otrzymuję ten błąd, gdy próbuję ten kod:LINQ do podmiotów nie rozpoznaje metody „Int32 ToInt32 (System.String)” metoda i ta metoda nie może być tłumaczone na wyrażeniu sklepu

TaxiEntities db = new TaxiEntities(); 
bool IsUserPassCorrected = db.tblOperators.Any(item => item.UserName.ToLower() == txtUserName.Text.ToLower() && 
item.Password == Convert.ToInt32(txtPassWord.Text)); 

if (!IsUserPassCorrected) 
{ 
    MessageBox.Show("Username or Password is incorrected! Please try again"); 
} 
+0

wsporniki użytkowania i analizowania/tryparse – Sayse

+0

na marginesie, jeśli db nie jest rozróżniana można pominąć ' .ToLower() 'sprawia, że ​​jest on bardziej czytelny. Nie zapomnij również "Zlikwiduj" kontekst, który najlepiej jest zawinąć wewnątrz bloku 'using'. – Silvermind

Odpowiedz

7

Rejestracja LINQ do podmiotów nie obsługują Convert.ToInt32, trzeba analizować na int poza LINQ pierwszy:

TaxiEntities db = new TaxiEntities(); 
int password = int.Parse(txtPassWord.Text); 

bool IsUserPassCorrected = db.tblOperators 
      .Any(item => item.UserName.ToLower() == txtUserName.Text.ToLower() 
         && item.Password == password); 
Powiązane problemy