【问题标题】:Linq Contains() Not supportedLinq Contains() 不支持
【发布时间】:2013-03-15 15:54:20
【问题描述】:
(from a in GetCtx().Application
                     where identifiers.Contains(a.os + ":" + a.osIdentifier)
                     select a.id).ToList();

它给了我 NotSupportedException:

LINQ to Entities 无法识别方法 'System.String Format(System.String, System.Object, System.Object)' 方法和这个 方法不能翻译成商店表达式。

谁能告诉我如何解决这个问题?

【问题讨论】:

  • 什么是identifiers
  • 它是一个字符串。我将其格式化为具有这两个参数,例如“3:com.app.android”
  • 您使用的是 EF4 还是更新版本?
  • 您确定这是正确的代码/错误消息吗?错误是抱怨 String.Format,而不是 Contains。

标签: c# linq entity-framework entity


【解决方案1】:

如果您针对 SQL Server 使用 LINQ to Entities,您可以使用 SqlFunctions

(from a in GetCtx().Application
 where identifiers.Contains(SqlFunctions.StringConvert((double)a.os) + ":" + a.osIdentifier)
 select a.id).ToList();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-07
    • 2018-08-21
    • 2013-10-29
    • 1970-01-01
    • 2012-01-29
    • 2012-05-12
    • 2012-07-13
    • 2021-07-15
    相关资源
    最近更新 更多