2017-04-05 84 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; 
相关问题