无法将值NULL插入列BLAH表BLAH列不允许空值。 INSERT失败

时间:2013-08-22 20:33:56

标签: entity-framework entity-framework-5

我有一个

的域实体
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]

设置Id属性,但EF在尝试保存时仍尝试插入空值。这是个常见的问题吗?这是它的样子的一个例子。

public class Invoice
{   
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    public ShippingInformation ShippingInformation{ get; set; }
    public BillingInformation BillingInformation { get; set; }
    public decimal Subtotal { get; set; }
    public User user { get; set; }
    public bool Processed { get; set; }
}

2 个答案:

答案 0 :(得分:8)

实体框架中存在一个错误,其中迁移无法正确检测DatabaseGeneratedOption的更改。

有关问题的说明以及如何重新创建问题的示例,请参阅this issue on the Entity Framework page on the Codeplex website

答案 1 :(得分:0)

如果您可以使用密钥添加此属性[DatabaseGenerated(DatabaseGeneratedOption.None)],那么它对实体框架6.1.3起作用。

例如,

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
Public int EmployeeId  { get; set; }