【发布时间】: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