LINQ to Entities不识别将转换为字符串
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();
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的问题。