Tôi có một bảng có khóa chính của ID, trường này không phải là cột nhận dạng. Di cư của tôi cho Entity Framework 6 làKhuôn khổ thực thể không nhận dạng - Không thể chèn giá trị NULL vào cột 'ID'
CreateTable(
"dbo.Action",
c => new
{
ID = c.Int(nullable: false, identity: false),
ActionName = c.String(maxLength: 50),
})
.PrimaryKey(t => t.ID);
Điều này có vẻ khá thẳng về phía tôi. Sau đó, tôi có một phương pháp để gieo rắc một số dữ liệu:
public static void Seed(this DbSet<Action> entitySet)
{
MainContext dbCtx = DataRepositoryBase<Action>.GetContext(entitySet) as MainContext;
if (dbCtx != null)
{
entitySet.Add(new Action()
{
ID = 1,
ActionName = "Test"
});
}
}
Đó là tại thời điểm này tôi nhận được một lỗi
"Không thể chèn các giá trị NULL vào cột 'ID', bảng 'dbo.Action' ; cột không cho phép null INSERT không \ tuyên bố r \ nThe đã chấm dứt"
Như bạn có thể thấy tôi đang cung cấp rõ một giá trị cho cột ID... Tôi đoán rằng Entity Framework được mong đợi ID là một cột nhận dạng
Entity lớp là rất đơn giản
[DataContract]
public class Action
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string ActionName { get; set; }
}
Bạn có thể gửi các bản đồ cho môi trường 'Action' thực thể? –
Bạn đã nói với EF rằng cột ID không phải là một cột nhận dạng? – DavidG
Chắc chắn đó là những gì tôi đang làm trong quá trình di chuyển khi tôi nói nhận dạng: false – keitn