我有这个代码:
IEnumerable<Users> allItems = await MobileService.GetTable<Users>().CreateQuery().ToEnumerableAsync();
foreach (var item in allItems) {
if (item.Email.Equals(emailEntry.Text)) {
emailIsValid = true;
}
}
它检索我的azure表中的所有项目,然后检查在文本字段中输入的电子邮件是否有效(匹配azure表中的一个)。问题是在我看来,由于我的表中有数千个用户日志的可能性,我不知道这种电子邮件验证方法是否可行,性能明智,如果不可行,那么更好的方法是什么?这个?
构造查询以完成服务器端的大部分繁重工作。应用过滤器以减少线路上的数据量。
像这样的东西
var email = emailEntry.Text;
var query = await MobileService.GetTable<Users>()
.Where(item => item.Email == email)
.ToEnumerableAsync();
var emailIsValid = query.Any();
除非需要使用所有用户,否则无需获取所有用户。