Tôi đang sử dụng mã EF đầu tiên cho dự án của mình. Tôi có mã sau đây trong DataModelMã khuôn khổ thực thể đầu tiên tạo cột không thể rỗng
[HiddenInput(DisplayValue = false)]
public DateTime? PasswordDate { get; set; }
Để làm cho giá trị này không bị vô hiệu, tôi đã xóa '?' và chạy lệnh Add-Migration từ giao diện điều khiển Package manager. tệp di chuyển sau đã được tạo.
public partial class PasswordDate : DbMigration
{
public override void Up()
{
AlterColumn("dbo.CertificateInfoes", "PasswordDate", c => c.DateTime(nullable: false));
}
public override void Down()
{
AlterColumn("dbo.CertificateInfoes", "PasswordDate", c => c.DateTime());
}
}
Nhưng khi tôi chạy lệnh Update-Cơ sở dữ liệu:
Update-Database -SourceMigration 201309020721215_PasswordDate
tôi nhận được lỗi sau: Không thể chèn các giá trị NULL vào cột 'PasswordDate', bảng ''; cột không cho phép null. CẬP NHẬT không thành công. Tuyên bố đã bị chấm dứt.
Vui lòng đề xuất giải pháp.
Tôi không thể thay đổi lại thành không thể thực hiện được. cho tùy chọn thứ hai làm thế nào tôi có thể xác định giá trị mặc định? Tôi có cần phải làm điều đó trong tập tin di chuyển hoặc tôi cần phải thêm rằng trong datamodel của tôi? – HBhatia
@HardikBhatia Sau đó cung cấp cho cột của bạn một giá trị ngày mặc định, nếu không bạn sẽ phải đi qua các bản ghi trống riêng lẻ và cập nhật chúng. – mattytommo
Tôi đã sửa đổi bảng và đảm bảo cột PasswordDate của tôi không rỗng trong cơ sở dữ liệu. – HBhatia