将会话转换为linq查询的int
本文关键字:查询 int linq 会话 转换 | 更新日期: 2023-09-27 18:21:55
我试图用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,但它们都给出了相同的结果。
您需要将解析移到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);
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.