If _ProjectContext.ProjectDetails
has more then one phase item then it will throw exception.
But if there is no matching element then it will return 0
var numbers = new[] {1 ,2, 3};
numbers.Where(x => x == 6).SingleOrDefault(); // returns 0
because
default(int) == 0
1
solved In c# where in clause works for integers?