データ注釈Required
を使用すると、次のようになります。
[Required]
public int somefield {get; set;}
設定します なんか データベースのNot Null
に、どのように設定できますか なんか NULLを許可するには、SQL Server Management Studioで設定しようとしましたが、Entity FrameworkはNot Null
に設定し直しました。
string somefield
プロパティから[Required]属性を省略するだけです。これにより、dbにNULL
able列が作成されます。
Int型でデータベース内のNULLを許可するには、モデル内でNULL可能なintとして宣言する必要があります。
// 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; }
もう1つのオプションは、列にnullを許可するようEFに指示することです。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<SomeObject>().Property(m => m.somefield).IsOptional();
base.OnModelCreating(modelBuilder);
}
このコードは、DbContext
から継承するオブジェクト内にある必要があります。
コンパイラエラーが発生したため、Jonの答えはうまくいきませんでしたCS0453 C#メソッド
これは私にとってはうまくいきました:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<SomeObject>().HasOptional(m => m.somefield);
base.OnModelCreating(modelBuilder);
}
Ef .net coreには2つのオプションがあります。最初にデータ注釈付き:
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; }
}
詳細があります こちら