Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置DbContext的架构名称_C#_Entity Framework_Entity Framework 6_Database Schema - Fatal编程技术网

C# 设置DbContext的架构名称

C# 设置DbContext的架构名称,c#,entity-framework,entity-framework-6,database-schema,C#,Entity Framework,Entity Framework 6,Database Schema,我知道如何在我的上下文中为一个表设置模式,但是有没有办法为上下文中的所有表设置默认模式? i、 e [Schema=“Ordering”] 公共类MyContext:DbContext { 公共MyContext() :base(“name=ConnectionString”) { } 公共数据库集学生{get;set;} } 您可以在自定义继承的DbContext类的OnModelCreating方法中配置默认架构,如- public class MyContext: DbContext

我知道如何在我的上下文中为一个表设置模式,但是有没有办法为上下文中的所有表设置默认模式? i、 e

[Schema=“Ordering”]
公共类MyContext:DbContext
{
公共MyContext()
:base(“name=ConnectionString”)
{
}
公共数据库集学生{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");
            }
        }
公共类MyContext:DbContext
{
public MyContext():base(“MyContext”)
{
}
公共数据库集学生{get;set;}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
//配置默认架构
modelBuilder.hasdaultschema(“排序”);
}
}

从EF6开始,您可以使用DbModelBuilder上的HasDefaultSchema方法指定用于所有表、存储过程等的数据库架构。对于您显式配置不同架构的任何对象,此默认设置将被覆盖。

当我尝试设置“HasDefaultSchema”时,我收到此错误-自创建数据库以来,支持“”上下文的模型已更改。考虑使用代码第一迁移来更新数据库。您知道如何解决它或者原因是什么吗?@AchuthaKrishnan需要解决您需要更新迁移的问题。这是一个好主意。在cmd提示符中,运行以下命令:dotnet ef database updatethis即使在EF6中也不起作用。每当我实例化上下文时,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");
            }
        }