ProgramingTip

엔터티 필드에 대한 Nullable 속성, Code First를 포함하는 Entity Framework

bestdevel 2020. 11. 20. 09:18
반응형

엔터티 필드에 대한 Nullable 속성, Code First를 포함하는 Entity Framework


다음 Required과 같이 데이터 주석을 사용합니다 .

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

설정합니다 somefield를내가Not Null 설정하는 방법, 데이터베이스에 somefield 나는 SQL Server Management Studio를하지만 워크 프레임을 통해 설정 시도? 널 (null)을 허용하기로 다시 설정합니다 .Not Null


속성에서 [필수] 속성을 생략하면 string somefield됩니다. 이렇게하면 NULLdb에 가능한 열 이 생성 됩니다.

int 유형이 데이터베이스에서 NULL을 허용하도록 선택해야합니다.

// 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에 열이 널이 허용하는 것입니다.

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

이 코드는 상속하는 것이어야합니다 DbContext.


컴파일러 오류 CS0453 C #이 발생하여 Jon의 대답이 작동하지 않습니다 . 제네릭 유형 또는 메소드에서 우선 순위 변수 'T'로 사용 선호하는 유형이 nullable이 아닌 값 유형이어야합니다.

이것은 나를 위해 일했습니다.

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

에서 Ef는 .NET 핵심 당신이 할 수있는 두 가지 옵션이있다; 먼저 데이터 주석으로 :

public class Blog
{
    public int BlogId { get; set; }
    [Required]
    public string Url { get; set; }
}

또는 유창한 API로 :

class MyContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Blog>()
            .Property(b => b.Url)
            .IsRequired(false)//optinal case
            .IsRequired()//required case;
    }
}

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
}

여기에 자세한 내용이 있습니다.

참고 URL : https://stackoverflow.com/questions/10710393/nullable-property-to-entity-field-entity-framework-through-code-first

반응형