我试图从where数据库中获取数据库中的变量数,但是我得到了一个像
这样的错误' LINQ to Entities无法识别方法' Int32 解析(System.String)'方法'
这是我的代码:
var tickets = (from a in user.TicketTable where a.HandlerId == int.Parse(Session["emp"].ToString()) && a.Done == true select a.TicketId);
int count = 0;
foreach (var n in tickets)
{
count++;
}
lblDone.Text = count.ToString();
我尝试了其他方法将会话转换为int,但它们都给出了相同的结果。
答案 0 :(得分:1)
int.Parse
无法转换为T-SQL,Linq to Entities无法识别它。您可以按如下所示修改代码(将解析函数移出表达式):
int emp = int.Parse(Session["emp"].ToString());
var tickets = (from a in user.TicketTable where a.HandlerId == emp &&
a.Done == true
select a.TicketId);
另请查看此链接可能有用:How to resolve: LINQ to Entities does not recognize the method int.Parse.
答案 1 :(得分:1)
您需要将解析移到Linq to Entities查询之外,例如
var emp =int.Parse(Session["emp"].ToString()) ;
var tickets = (from a in user.TicketTable where a.HandlerId == emp &&
a.Done == true select a.TicketId);