无法将值NULL插入列'ID',表'XXX'(实体框架)

时间:2015-03-26 09:15:06

标签: sql entity-framework entity-framework-4

我试图通过添加对象,它会抛出上面的错误。我的ID列为NOT NULL,没有Identity。我的代码如下。我也正在为ID分配值。

我已根据SO Thread在上下文类中为此属性添加了属性[DatabaseGenerated(DatabaseGeneratedOption.None)]但不起作用。

  int id = context.CreditApps.Max(x => x.ID);
                    if (id != null && id != 0)
                    {
                        newCreditAppId = id + 1;
                        objCredit.ID = newCreditAppId;
                    }

                    objCredit.IsActive = true;
                    context.DTOriginalCreditApps.AddObject(objCredit);
                    context.SaveChanges();

上下文类

#region Primitive Properties

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)] //Added later
    [DataMemberAttribute()]
    public global::System.Int32 Id
    {
        get
        {
            return _Id;
        }
        set
        {
            if (_Id != value)
            {
                OnIdChanging(value);
                ReportPropertyChanging("Id");
                _Id = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("Id");
                OnIdChanged();
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

我只是在edmx文件的XML SSDL中更改上述实体的ID列的属性StoreGeneratedPattern="None"

基本上,当您的表不包含没有标识的主键时,会发生此运行时异常。