Я предполагаю, что вы используете код в первую очередь. Вы, вероятно, получаете необнуляемые значения для типов, которые действительно не могут обнуляться (типы значений), такие как int, bool и т. Д. Чтобы сделать это, вам нужно использовать обнуляемую версию:
int? MyColumnThatIsNullable
и НЕ это
int MyColumnThatIsNOTNullable
Подумайте, как будет работать код, и это будет иметь смысл для вас. Если поле имеет тип int и в коде делается попытка передать значение null, то у вас будет либо какая-то ошибка, либо магическое (по умолчанию) значение. Это не будет правильно представлять значение в базе данных. Таким образом, если вы используете версию с нулевым значением, то в базе данных ноль может быть представлен тем, чем он является на самом деле, ноль.