-1

I'm Creating login form using c#. when I login I get the following error:

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();
    }
}
Chris Pickford
  • 8,642
  • 5
  • 42
  • 73
moni123
  • 165
  • 1
  • 4
  • 13

2 Answers2

2

It's exactly what it says, it can't translate ToString into a valid SQL expression.

Get the username and password strings first.

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

Then use these in your LINQ:

var isValidUsert = db.Users
                     .Where(i => i.UserName == username  && i.Password == password )
                     .FirstOrDefault();
Equalsk
  • 7,954
  • 2
  • 41
  • 67
0

Save it to variables and check for equality

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;
Sajeetharan
  • 216,225
  • 63
  • 350
  • 396