2013-07-01 35 views
5

我得到這個錯誤,當我試試這個代碼:LINQ到實體無法識別方法「的Int32 ToInt32(System.String)」的方法,而這種方法不能被翻譯成店表達

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

使用支架和解析/的TryParse – Sayse

+0

在一個側面說明,如果你的數據庫是不區分大小寫,你可以離開了' .ToLower()'這使得它更易於閱讀。另外,不要忘記把''Dispose''包含在'using'塊中的最好的上下文。 – Silvermind

回答

7

由於LINQ到實體不支持Convert.ToInt32,你需要分析到int LINQ以外的第一:

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); 
相關問題