实体框架ToString方法

Sag*_*yay 4 c# linq-to-entities

以下代码块抛出错误.

LINQ to Entities无法识别方法'System.String ToString()'方法,并且此方法无法转换为存储表达式.

db.tbOnIgmHawbDetails
  .Where(s => !db.tbImpoExaminations.Any(x => x.Hawb.ToString() == s.Hawb) && s.AwbNo == p)
  .Select(s => s.Hawb).ToList();
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?为什么会这样,解决方案是什么?

xan*_*tos 10

您可以试试SqlFunctions.StringConvert...使用decimal转换:

SqlFunctions.StringConvert((decimal)p.x.Hawb).TrimLeft() == ...
Run Code Online (Sandbox Code Playgroud)

(这TrimLeft是必要的,因为STRSQL 的功能会正确对齐数字)

  • EF 6.1支持ToString():http://blogs.msdn.com/b/adonet/archive/2014/03/17/ef6-1-0-rtm-available.aspx (4认同)