Это действительно очень просто: Single
возвращает один элемент и выдает исключение, если нет ни одного, или более одного элемента.First
вернет первый предмет или бросок, когда предмета нет.FirstOrDefault
вернет первый элемент или вернет значение по умолчанию (которое равно null
в случае, если данный тип является ссылочным типом), когда элемента нет.иметь.Однако обратите внимание, что базовая реализация может иметь другое поведение.Хотя Entity Framework подчиняется этому, O / RM, такой как LLBLGen, также может возвращать null
при вызове First
, что является очень странной вещью.Это было очень странное (и упрямое) решение дизайнера IMO.