2015-03-26 2 views
0

Я попытался добавить объект через него, он выдает ошибку, как указано выше. Мой идентификационный столбец NOT NULL и без Identity. Мой код выглядит следующим образом. Я также присваиваю значение ID.Невозможно вставить значение NULL в столбец 'ID', таблица 'XXX' (Entity framework)

Я добавил атрибут [DatabaseGenerated(DatabaseGeneratedOption.None)] для этого свойства в контексте класса согласно SO Thread, но не работает.

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(); 
      } 
     } 
    } 
+0

Что произойдет, если id == 0: 'if (id! = Null && id! = 0)', что еще? – tschmit007

+0

Это не полезно. Он входит в инструкцию if. –

ответ

0

Я просто изменить атрибут StoreGeneratedPattern="None" идентификационного столбца указанного объекта в XML SSDL из EDMX файла.

В основном это исключение для выполнения происходит, когда ваша таблица не содержит первичный ключ без идентификации.