[英]Unhandled exception occured during executing of empty field
我在弄清楚为什么我的代码无法正常工作时遇到了麻烦。 当该字段为空时,它将连续加载。 同样,当字段IS被占用时,第四次添加内容会复制该错误。 有什么帮助吗?
private async Task<City> RetrieveCity(string name)
{
// Instantiate return variable
City city = null;
// Find id in ProductLines table
var cities = await db.Cities.Where(c => c.CityName.Equals(name)).ToListAsync();
city = cities.First();
return city;
}
作为马切伊提到的,它很可能,你看到因为一个异常被抛出这是不正确捕获并导致停留在装载 -状态的UI 不断加载的效果。
因为您的查询返回一个空列表,所以可能会出现错误。 稍后您调用First()
,如果cities
列表为空,则会引发该错误。
您可以像这样简化您的方法:
private async Task<City> RetrieveCity(string name)
{
return await db.Cities.FirstOrDefaultAsync(c => c.CityName.Equals(name));
}
在尝试从列表中获取第一个元素之前,请确保citys.Count()> 0。
private async Task<City> RetrieveCity(string name)
{
// Instantiate return variable
City city = null;
// Find id in ProductLines table
var cities = await db.Cities.Where(c => c.CityName.Equals(name)).ToListAsync();
if(cities!=null && cities.Count()>0)
{
city = cities.First();
}
return city;
}
或者简单地,您只能使用FirstOrDefault来匹配您的匹配条件,例如
private async Task<City> RetrieveCity(string name)
{
var city = await db.Cities.FirstOrDefault(c => c.CityName.Equals(name));
return city;
}
采用
city = cities.FirstOrDefault();
如果序列为空,它将返回null
更多信息 :
https://msdn.microsoft.com/zh-CN/library/bb340482(v=vs.100).aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.