C# LINQ to Entities无法识别方法“Int32 Parse(System.String)”方法,并且无法将此方法转换为存储表达式

C# LINQ to Entities无法识别方法“Int32 Parse(System.String)”方法,并且无法将此方法转换为存储表达式,c#,entity-framework,ado,C#,Entity Framework,Ado,我得到这个错误,这是我的代码 var query1 = (from cust1 in context2.Clients where cust1.ID == int.Parse(textBox1.Text) select cust1).FirstOrDefault();` 即使我的ID是Int而不是string,也要在查询之外调用解析方法: var id=int.Parse(textBox1.Text); var result=contex

我得到这个错误,这是我的代码

var query1 = (from cust1 in context2.Clients
              where cust1.ID == int.Parse(textBox1.Text)
              select cust1).FirstOrDefault();`
即使我的ID是Int而不是string,也要在查询之外调用解析方法:

var id=int.Parse(textBox1.Text);
var result=context2.Clients.FirstOrDefault(cust=> cust.ID ==id );

我认为最简单的解决方案是在查询之前转换为int:

var id = int.Parse(textBox1.Text);
var query1 = (from cust1 in context2.Clients
              where cust1.ID == id
              select cust1).FirstOrDefault();
或者,为了进行错误处理:

var id = 0;
if (!int.TryParse(textBox1.Text, out id)) {
    // raise an error condition
}
var query1 = (from cust1 in context2.Clients
              where cust1.ID == id
              select cust1).FirstOrDefault();

必须首先将int.Parse设置为变量,如下所示:

var intValue = int.Parse(textBox1.Text);   
 var query1 = (from cust1 in context2.Clients
                          where cust1.ID == intValue
                          select cust1).FirstOrDefault();