LINQ to Entities 无法识别 c# 中的方法 'System.String ToString()'

LINQ to Entities does not recognize the method 'System.String ToString()' in c#

我正在使用 C# 创建登录表单。当我登录时出现以下错误:

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();
    }
}

正如其名,它无法将 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();

将其保存到变量并检查是否相等

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;