【问题标题】:Why can't I use LINQ's First/FirstOrDefault method in OData?为什么我不能在 OData 中使用 LINQ 的 First/FirstOrDefault 方法?
【发布时间】:2013-04-27 00:05:44
【问题描述】:

我可以做到以下几点:

container.Users.Where(u => u.Name == "Omar").FirstOrDefault()

但是

container.Users.FirstOrDefault(u => u.Name == "Omar")

返回一个NotSupportedException (The method 'FirstOrDefault' is not supported.)

既然它们本质上是一样的,为什么不支持呢?

【问题讨论】:

    标签: linq odata


    【解决方案1】:

    OData 提供程序使用的 LINQ 翻译引擎不能处理所有场景。

    虽然这些在逻辑上是相同的,但必须生成每个表达式以构建查询字符串。引擎不支持第二种形式。

    【讨论】:

    • 你必须在 FirstOrDefault 之前使用 where。例如container.Users.Where(u => u.Name == "Omar").FirstOrDefault();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2010-11-14
    • 1970-01-01
    相关资源
    最近更新 更多