При определении строки в классе с помощью Code First по умолчанию для столбцов в сгенерированной базе данных допускаются значения NULL.
public string MyString { get; set; }
создает этот столбец:
MyString (nvarchar (max), null)
Я могу изменить это значение на "not null", используя атрибут [Required]
или метод .IsRequired () в Fluent API.
Значение по умолчанию для других типов данных не допускает нулевые значения.
public int MyInt { get; set; }
public DateTime MyDateTime { get; set; }
public float MyFloat { get; set; }
public decimal MyDecimal { get; set; }
public bool MyBool { get; set; }
создает следующие столбцы:
MyInt (int, not null)
MyDateTime (дата-время, не нуль)
MyFloat (реальный, не ноль)
MyDecimal (десятичный (18,2)), не нуль)
MyBool (бит, не нуль)
Я могу изменить их, чтобы разрешить нулевые значения, используя метод .IsOptional () в FluentAPI.Есть ли атрибут, который будет делать то же самое?
Я также могу изменить типы данных в определении класса, чтобы разрешить нулевые значения (int ?, DateTime? И т. Д.), Что приводит к появлению столбцов, допускающих нулевые значения в базе данных.
Что такоеОбоснование для разрешения пустых значений по умолчанию для строк, но не для других типов данных?