Свойство Nullable для поля сущности, Entity Framework через первый код



использование аннотации данных Required вот так:



[Required]
public int somefield {get; set;}


устанавливается somefield до Not Null в базе данных, как я могу установить somefield
чтобы разрешить значения null?, Я попытался установить его через SQL Server Management Studio, но Entity Framework вернул его в Not Null.

701   3  

3 ответов:

просто опустите атрибут [Required] из string somefield собственность. Это позволит ему создать NULLстолбца в БД.

чтобы типы int допускали значения NULL в базе данных, они должны быть объявлены как nullable ints в модели:

// an int can never be null, so it will be created as NOT NULL in db
public int someintfield { get; set; }

// to have a nullable int, you need to declare it as an int?
// or as a System.Nullable<int>
public int? somenullableintfield { get; set; }
public System.Nullable<int> someothernullableintfield { get; set; }

другой вариант-сказать EF, чтобы столбец был null:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
        modelBuilder.Entity<SomeObject>().Property(m => m.somefield).IsOptional();            
        base.OnModelCreating(modelBuilder);
}

этот код должен быть в объект, который наследует от DbContext.

ответ Джона не сработал для меня, так как я получил ошибку компилятора CS0453 C# тип должен быть ненулевым типом значения, чтобы использовать его в качестве параметра 'T' в универсальном типе или методе

это сработало для меня, хотя:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<SomeObject>().HasOptional(m => m.somefield);
    base.OnModelCreating(modelBuilder);
}

Comments

    Ничего не найдено.