我是相當新的MVC和EF,我試圖從我的數據庫中顯示數據到我的視圖。這是我的行動:System.InvalidOperationException當試圖從數據庫中獲取數據
public ActionResult MalfunctionsList(MalfunctionDTO malfunctionDTO)
{
var malfunctions = _context.Malfunctions.ToList();
var customer = _context.Malfunctions.Single(c => c.Id == malfunctionDTO.CustomerId);
var movie = _context.Malfunctions.Where(m => malfunctionDTO.MovieIds.Contains(m.Id)).ToList();
return View(malfunctions);
}
當代碼運行,我得到System.InvalidOperationException:序列不包含在此行中沒有的元素:
var customer = _context.Malfunctions.Single(c => c.Id == malfunctionDTO.CustomerId);
這是我的DTO:
public class MalfunctionDTO
{
public int CustomerId { get; set; }
public List<int> MovieIds { get; set; }
public Customer Customer { get; set; }
public Movie Movie { get; set; }
public string ReportDescription { get; set; }
}
在我數據庫中的表customerId不爲空。
SingleOrDefault()返回空值,爲什麼它返回一個空值,如果它在我的表中有一個值? – IlirAs
正如我所說,如果你確定條件是真的,那麼請確保有一個元素(不超過1),否則它將返回null。否則,你應該調試程序,看看有什麼事情,var varunctions在ToList()後面保留一個空列表? –
在數據庫表中,可以有多個具有相同customerId的項目。調試器顯示,var malfunctions不是空它包含_context.Malfunctions – IlirAs