【问题标题】:Where() clause returning "The query specified in the URI is not valid..."Where() 子句返回“URI 中指定的查询无效...”
【发布时间】:2015-01-02 23:56:20
【问题描述】:

我有一个 .Net 移动服务。

调用这个:

https://xxx.azure-mobile.net/tables/items?$filter=(company%20eq%20%27987af3f9-8d44-4a9d-8be2-7e0567287106%27)

返回:

{"message":"URI 中指定的查询无效。不能 在类型上查找名为“公司”的属性 '默认值。f__AnonymousType2_3OfString_String_Double'。"}

“items”实体模型中的字段名称为“company”,数据库中的字段名称为“company_Id”,两者都不起作用。

使用http://ajax.aspnetcdn.com/ajax/mobileservices/MobileServices.Web-1.2.5.min.js

可能出了什么问题?

【问题讨论】:

  • 我尝试连接到您的移动服务,我看到 json 中有一个 name 属性。但是,当我尝试对其进行过滤时,我看到了同样的问题。你能发布你的模型类的定义吗?

标签: azure-mobile-services


【解决方案1】:

事实证明,当使用 $select 或 $filter 时,您在 .NET 后端遇到了套管错误。解决方法是对属性名称使用 Pascal 大小写(即首字母大写)。

【讨论】:

    【解决方案2】:

    问题是您只能过滤 $select 子句中存在的字段。正如here所说 没有意义,但无论如何......

    【讨论】:

      【解决方案3】:

      如果我的列名的第一个字符是小写的,我无法使用 LINQ 或 Lambda 表达式查询我的 Azure 数据库。

      将它们切换为大写字母就可以了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-15
        • 2017-01-22
        • 2019-03-09
        • 1970-01-01
        相关资源
        最近更新 更多