2017-04-05 198 views
-1

我正在使用c#創建登錄表單。當我登錄,我得到了以下錯誤:LINQ to Entities無法識別c#中的System.String ToString()方法

LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression.**

using (var db = new StageCraftEntities()) 
{ 
    var isValidUsert = db.Users.Where(i => i.UserName == this.txtUserName.Text.ToString() && i.Password == this.txtPassword.Text.ToString()).FirstOrDefault(); 


    var isValidUser = from User in db.Users 
         where User.UserName.Equals(this.txtUserName.Text.Trim().ToString()) 
         && User.Password.Equals(this.txtPassword.Text.Trim().ToString()) 
         select User; 

    if(true) 
    { 
     Dashboard dashboard = new Dashboard(isValidUsert); 
     dashboard.Show(); 
     this.Hide(); 
    } 
} 
+0

做微調outiside LINQ查詢 –

回答

2

這正是它說,它的ToString不能轉化爲有效的SQL表達式。

首先獲取用戶名和密碼字符串。

var username = this.txtUserName.Text.ToString(); 
var password = this.txtPassword.Text.ToString(); 

然後在你的LINQ使用這些:

var isValidUsert = db.Users 
        .Where(i => i.UserName == username && i.Password == password) 
        .FirstOrDefault(); 
0

保存到變量和檢查平等

var username = this.txtUserName.Text.Trim().ToString(); 
var password = this.txtPassword.Text.Trim().ToString(); 

var isValidUser = from User in db.Users 
           where User.UserName == username 
           && User.Password == password 
           select User; 
相關問題