因此,下拉菜单用于选择用户名称,然后点击“查看”,它将显示此用户之前预订的所有假期。
从这里,用户可以点击“创建新”,这将使他们进入创建新页面。 而不是必须从另一个下拉列表中重新选择他们的名字,而是通过currentuserID进行操作,并将第二个下拉列表替换为用户ID。
一切正常,2个单独的下拉菜单,用户可以预订假期等... 但是现在(在我更改了第二个下拉以保存ID值之后)我的控制器中的listHoliday方法出错:
错误:用户代码未处理InvalidOperationException。序列不包含任何元素。
var dbPerson1 = (from p in db.People
where p.Id == PersonId
select p).Single();
有人可以建议做什么吗?
答案 0 :(得分:3)
这意味着您正在执行的linq查询没有返回任何结果,.Single()会抛出异常。
试
var dbPerson1 = (from p in db.People
where p.Id == PersonId
select p).FirstOrDefault(); // or use SingleOrDefault() if People are unique
if (dbPerson1==null)
{
throw new HolidayAllocationException("Person not found");
}
else
{
// person found
if (dbPerson.HolidaysRemaining > 0)
{
AllocateHoliday(); // or whatever you need to do
}
else
{
throw new NoHolidayLeftException();
}
}
如果查询没有返回任何内容, dbPerson1
将为null。
希望有所帮助
答案 1 :(得分:2)