Khi tôi lưu thay đổi cơ sở dữ liệu, tôi đang chạy vào ngoại lệ sau đây:Entity Framework 6 Mã Đầu tiên giá trị datetime mặc định trên chèn
Cannot insert the value NULL into column 'Registered', table
'EIT.Enterprise.KMS.dbo.LicenseEntry'; column does not allow nulls.
INSERT fails. The statement has been terminated.
Mã liên quan đầu tiên sở hữu mô hình trông như thế này:
[DatabaseGenerated(DatabaseGeneratedOption.Identity), DataMember]
public DateTime Registered { get; private set; }
... và đây là lý do tôi nhầm lẫn: Theo tôi biết, bằng cách cung cấp chú thích [DatabaseGenerated(DatabaseGeneratedOption.Identity)
Tôi đang sắp đặt Khung thực thể để tự động tạo trường (trong trường hợp này: Chỉ một lần tại thời điểm tạo .)
Vì vậy, tôi hy vọng sẽ có trường không bắt buộc (không bắt buộc), mà không có khả năng thay đổi trường theo cách thủ công khi EF đang chăm sóc.
Tôi đang làm gì sai?
Ghi chú:
- Tôi không muốn sử dụng thạo-API, như tôi muốn sử dụng POCOs.
- Thuộc tính
defaultValueSql
cũng không phải là một tùy chọn, bởi vì tôi cần phải dựa vào cơ sở dữ liệu được dành riêng cho dự án này (ví dụ:GETDATE()
). - Tôi đang sử dụng Entity Framework 6 alpha 3, Code First.
Tự động tạo cũng là khóa chính của bạn? Nếu vậy, bạn sẽ cần chỉ định chú thích [key]. – Botonomous
Không. Nó chỉ là một tài sản. – Atrotygma
Tôi không tin rằng kiểu dữ liệu DateTime có hỗ trợ cho thuộc tính trường danh tính. – marcellscarlett