【问题标题】:Azure Mobile App query - bad requestAzure 移动应用查询 - 错误请求
【发布时间】:2016-08-29 17:22:29
【问题描述】:

我已修改示例 ToDoItem 应用以将我的应用连接到 Azure 移动应用服务。我慢慢地重新创建了大多数步骤以掌握它的窍门,并且它大部分都有效。

我被一个带有 Where 子句的查询难住了。我还有其他关于 where 子句的查询,但由于某种原因,这个查询不起作用。我检查了从底层数据库表到后端类到前端类的类型是否匹配,但我找不到任何明显的东西。我的前端类没有 JSON 属性类型 - 不确定这是否是必需的,因为其他东西在没有它们的情况下也能正常工作。

这是返回“错误请求”的 where 子句

string _test = txtEmail.Text;
    var _userlist = await userTable
                      .Where(User => User.eMail == _test)
                      .ToCollectionAsync();

这是我的前端类;

public class User
   {
      private IMobileServiceTable<User> userTable = App.MobileService.GetTable<User>();
      private ApplicationDataContainer localSettings;

      //
      public string Id { get; set; }
      public string UserID { get; set; }
      public string UserName { get; set; }
      public string FirstName { get; set; }
      public string LastName { get; set; }
      public bool DefaultUser { get; set; }
      public string eMail { get; set; }
      public bool LocationPermission { get; set; }
      public bool CloudPermission { get; set; }

      public User()
      {
         Guid _id = Guid.NewGuid();
         UserID = _id.ToString();
      }//constructor

还有我的表架构;

[Id]                 NVARCHAR (128)     DEFAULT (newid()) NOT NULL,
    [UserID]             NVARCHAR (MAX)     NULL,
    [UserName]           NVARCHAR (MAX)     NULL,
    [FirstName]          NVARCHAR (MAX)     NULL,
    [LastName]           NVARCHAR (MAX)     NULL,
    [DefaultUser]        BIT                NOT NULL,
    [eMail]              NVARCHAR (MAX)     NULL,
    [LocationPermission] BIT                NOT NULL,
    [CloudPermission]    BIT                NOT NULL,
    [Version]            ROWVERSION         NOT NULL,
    [CreatedAt]          DATETIMEOFFSET (7) DEFAULT (sysutcdatetime()) NOT NULL,
    [UpdatedAt]          DATETIMEOFFSET (7) NULL,
    [Deleted]            BIT                NOT NULL,
    CONSTRAINT [PK_dbo.Users] PRIMARY KEY NONCLUSTERED ([Id] ASC)

希望有人能帮助我指明正确的方向。

谢谢

尼克

【问题讨论】:

  • 我实际上已经在其他列上尝试过 where 子句。例如。名字 - 它工作正常!可以让所有其他列正常工作,而不是电子邮件。
  • 我发现了更多。我在 Azure 服务上打开了日志,这是实际错误。它试图在某个地方寻找“电子邮件”,大写字母 E。不知道为什么后端代码会这样做。看起来不错。 Buffer="{"message":"URI 中指定的查询无效。在“MyVinylServiceService.DataObjects.User”类型上找不到名为“EMail”的属性。"}"

标签: azure


【解决方案1】:

好的 - 我认为我解决了这个问题,但不确定为什么。 eMail 属性是唯一一个以小写开头的属性。我将其更改为电子邮件,一切正常。不知道为什么 - 可能在实体框架中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2019-01-16
    相关资源
    最近更新 更多