C# LINQ to实体无法识别方法';System.String-ToString(Int32)和#x27;方法

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

我有一个搜索框,我想返回基于TicketID的结果。但是,当尝试将TicketID转换为字符串以将其与搜索词字符串进行比较时,我收到此错误

以下是我的方法:

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