C# LINQ to实体无法识别方法';System.String-ToString(Int32)和#x27;方法
我有一个搜索框,我想返回基于TicketID的结果。但是,当尝试将TicketID转换为字符串以将其与搜索词字符串进行比较时,我收到此错误 以下是我的方法:C# LINQ to实体无法识别方法';System.String-ToString(Int32)和#x27;方法,c#,linq,asp.net-mvc-4,runtime-error,C#,Linq,Asp.net Mvc 4,Runtime Error,我有一个搜索框,我想返回基于TicketID的结果。但是,当尝试将TicketID转换为字符串以将其与搜索词字符串进行比较时,我收到此错误 以下是我的方法: public ActionResult Autocomplete(Ticket ticket, string term) { var searchTickets = db.Tickets .Where(t => t.StatusID != 3 && Convert.To
public ActionResult Autocomplete(Ticket ticket, string term)
{
var searchTickets = db.Tickets
.Where(t => t.StatusID != 3 &&
Convert.ToString(t.TicketID).StartsWith(term))
.Take(10)
.Select(t => new
{
label = t.Summary
});
return Json(searchTickets, JsonRequestBehavior.AllowGet);
}
我在类似的文章中尝试了其他建议,例如SqlFunctions.StringConvert()
扩展方法,但是,这在项目构建之前就抛出了语法错误
任何指导都将不胜感激 试着这样做:
Using System.Data.Objects.SqlClient;
var searchTickets = db.Tickets
.Where(t => t.StatusID != 3 &&
SqlFunctions.StringConvert((double)t.TicketID).StartsWith(term)
.Take(10)
.Select(t => new
{
label = t.Summary
});
使用EF4,您可以使用
SqlFunctions.StringConvert
。int
没有重载,因此需要强制转换为double
或decimal
你应该使用SqlFunctions
的确,你试过什么?可能是重复的我已经意识到为什么这个方法在我第一次尝试时对我不起作用了!我缺少使用System.Data.Objects.SqlClient的Using语句;谢谢你的帮助!是的,现在可以正常工作了,我只需要包含正确的using语句:Dcan您可以为SqlFunction编写名称空间吗?因此我在这里为其他问题添加它,它是:using System.Data.Objects.SqlClient代码>