Non-Nullable всем хорош, нередко с помощью него ловились мои косяки. Но!
Одна существенная недоработка — мапперы различного рода, в т.ч. тот что встроен в EF.
Для Маппера как бы принято оставлять открытые сеттеры, а значит нет никакой гарантии, что он проинициализирует свойство. Получается нужно добавять = null! для таких свойств, как бы надеясь что ничего не упустил. Что фактически обесценивает всею парадигму Non-Nullable.
Однако же какой выход из этого? Добавить конструктор для маппера?