Khi xác định một chuỗi trong một lớp bằng cách sử dụng Code First, mặc định cho các cột trong cơ sở dữ liệu được tạo cho phép null.Nullability cho chuỗi vs các kiểu dữ liệu khác trong cột được tạo bởi Entity Framework Code Đầu tiên
public string MyString { get; set; }
tạo cột này:
MyString (nvarchar (max), null)
tôi có thể thay đổi điều này để "không null" bằng cách sử dụng các thuộc tính [Required]
hoặc bằng .IsRequired() trong API thông thạo.
Giá trị mặc định cho các loại dữ liệu khác không cho phép giá trị rỗng.
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; }
tạo ra các cột:
Myint (int, không null)
MyDateTime (datetime, không null)
MyFloat (thực tế, không null)
MyDecimal (thập phân (18,2), không phải là null)
MyBool (bit, không null)
tôi có thể thay đổi các cho phép null bằng cách sử dụng phương pháp .IsOptional() trong API thạo . Có một thuộc tính sẽ làm điều tương tự?
Tôi cũng có thể thay đổi kiểu dữ liệu trong định nghĩa lớp để cho phép null (int ?, DateTime ?, v.v.) dẫn đến cột cho phép null trong cơ sở dữ liệu.
Lý do để cho phép null theo mặc định cho chuỗi chứ không phải cho các loại dữ liệu khác là gì?