LINQ to Entities无法识别方法' Int32 Parse(System.String)'方法

时间:2015-07-02 18:31:56

标签: linq entity-framework linq-to-entities

var query = from d in db.mytable
         where d.Code == int.Parse(WebUtils.GetQueryString("Code"))
         orderby d.PersonInfo
         select d;

我收到以下错误

LINQ to Entities无法识别方法' Int32 Parse(System.String)'方法,并且此方法无法转换为商店表达式。

我试图像这样重写int.Parse(WebUtils.GetQueryString(" Code"))  int intCode = int.TryParse(WebUtils.GetQueryString(" OfferCode"));

但仍然出现错误

2 个答案:

答案 0 :(得分:1)

只需在查询上下文之外解析查询字符串:

int code = int.Parse(WebUtils.GetQueryString("Code"));

var query = from d in db.mytable
         where d.Code == code
         orderby d.PersonInfo
         select d;

答案 1 :(得分:0)

您可以转换'代码'字段到字符串而不是查询字符串到int。 这应该有效:

var queryString = WebUtils.GetQueryString("Code");
var query = from d in db.mytable
     where SqlFunctions.StringConvert(d.Code) == queryString 
     orderby d.PersonInfo
     select d;

无法将字符串转换为int。如果使用int.Parse

,EF不知道如何将其转换为SQL