Строка, которая выдает ошибку, может выдать NullReferenceException
, только если qq равно null
.Это происходит, если строка не найдена в строке ранее.Я думаю, вы думали, что qq
никогда не может быть нулевым, потому что вы присвоили ему ненулевое значение.Однако после этого строка перезаписывает это значение на ноль, если строка не найдена.
PagesIndex qq = new PagesIndex(); // Pointless and misleading assignment!
qq = (from cc in db.PagesIndexes where cc.Id == pageId select cc).SingleOrDefault();
Вместо этого вы можете сделать это следующим образом, используя оператор null-coalescing :
public string GetTemplate(int pageId)
{
return db.PagesIndexes
.Where(p => p.Id == pageId)
.Select(p => p.Template)
.SingleOrDefault() ?? "_Layout";
}