Azure查询可能存在性能问题

问题描述 投票:2回答:1

我有这个代码:

IEnumerable<Users> allItems = await MobileService.GetTable<Users>().CreateQuery().ToEnumerableAsync();

foreach (var item in allItems) {
    if (item.Email.Equals(emailEntry.Text)) {
        emailIsValid = true;
    }
}

它检索我的azure表中的所有项目,然后检查在文本字段中输入的电子邮件是否有效(匹配azure表中的一个)。问题是在我看来,由于我的表中有数千个用户日志的可能性,我不知道这种电子邮件验证方法是否可行,性能明智,如果不可行,那么更好的方法是什么?这个?

c# azure xamarin xamarin.forms azure-mobile-services
1个回答
3
投票

构造查询以完成服务器端的大部分繁重工作。应用过滤器以减少线路上的数据量。

像这样的东西

var email = emailEntry.Text;
var query = await MobileService.GetTable<Users>()
                               .Where(item => item.Email == email)
                               .ToEnumerableAsync();

var emailIsValid = query.Any();

除非需要使用所有用户,否则无需获取所有用户。

© www.soinside.com 2019 - 2024. All rights reserved.