コンテキスト内のテーブルのスキーマを設定する方法を知っていますが、コンテキスト内のすべてのテーブルのデフォルトスキーマを設定する方法はありますか?つまり.
[Schema = "Ordering"]
public class MyContext:DbContext
{
public MyContext()
: base("name=ConnectionString")
{
}
public DbSet<Student> Students { get; set; }
}
次のように、カスタム継承されたDbContextクラスのOnModelCreatingメソッドでデフォルトスキーマを構成できます-
public class MyContext: DbContext
{
public MyContext(): base("MyContext")
{
}
public DbSet<Student> Students { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//Configure default schema
modelBuilder.HasDefaultSchema("Ordering");
}
}
EF6以降、DbModelBuilderのHasDefaultSchemaメソッドを使用して、すべてのテーブル、ストアドプロシージャなどに使用するデータベーススキーマを指定できます。このデフォルト設定は、別のスキーマを明示的に構成したオブジェクトに対して上書きされます。