LINQ to Entities不识别将转换为字符串

13 浏览
0 Comments

LINQ to Entities不识别将转换为字符串

我遇到了一个错误(如下),似乎无法将我的providerId转换为字符串。

LINQ to Entities不识别方法'System.String ToString(System.String)',且无法将此方法翻译为存储表达式。

我尝试进行转换的原因是因为jQuery Datatables抛出了一个错误:

DataTables警告:表id=example2 - 请求的未知参数'0'对于第0行。有关此错误的更多信息,请参见http://datatables.net/tn/4

代码:

var allProviders = _db.CareProviders.AsQueryable();
var resultItems = allProviders.Select(a => new
{
    ProviderId = Convert.ToString(a.ProviderId), //转换为字符串
    CareServiceType = a.CareServiceType,
    CareServiceName = a.CareServiceName,
    Email = a.Email
}).ToList();

0
0 Comments

LINQ to Entities does not recognize convert to string的问题出现的原因是LINQ to Entities无法直接识别将数据转换为字符串的操作。在上述代码中,使用了AsEnumerable()方法将数据从数据库中提取出来,并在应用程序端执行进一步的操作。然后使用.Select()方法将ProviderId转换为字符串。

解决这个问题的方法是使用一些能够被LINQ理解的转换方法。具体使用哪种方法取决于所使用的LINQ提供程序。可以尝试以下几种方法:

... = SqlFunctions.StringConvert(a.ProviderId)

... = Convert.ToString(a.ProviderId)

... = a.ProviderId + ""

这些方法可以将ProviderId转换为字符串,从而解决LINQ to Entities does not recognize convert to string的问题。

0