我的var _getData = db.EventTable.Where(x => x.EventID == id && x.Town == town).ToList();
if (_getData != null)
{
foreach (var e in _getData)
{
// some logic here to update the event etc
}
}
else
{
// some logic to create an event
}
声明没有达到预期效果,这让我很烦恼。我不确定我做错了什么。有人可以对此有所了解吗?
else
当_getData
为空时,我的代码永远不会访问A*x = b
块,我不知道为什么会这样。我需要它来命中else块以便在数据库中创建一个事件。
我做错了什么?
谢谢
答案 0 :(得分:5)
ToList()
无法返回null
但为空列表:
if (_getData.Any())
{
foreach (var e in _getData)
{
// some logic here to update the event etc
}
}
else
{
// some logic to create an event
}
答案 1 :(得分:2)
即使没有符合条件的行,也会返回没有条目的列表。
解决方案:
config.hpp
为了防止将来出现类似错误,我强烈建议命名这样的变量:
if(_getData.Any())
{
...
答案 2 :(得分:1)
由于您正在调用ToList(),因此它将创建一个存储在_getData变量中的List。
尝试通过以下方式检查此列表中是否存在项目:
if (_getData.Any())
{
}
答案 3 :(得分:1)
因为_getData永远不会为NULL。如果未找到数据,则实体框架不返回NULL。即使使用ZERO项目,它也会始终返回一个列表。
您应该检查_eventData的长度,以确定您是否有任何回复。