Sql 实体框架核心问题-更新数据库创建“;“用户”;模式

Sql 实体框架核心问题-更新数据库创建“;“用户”;模式,sql,asp.net,entity-framework,asp.net-core,entity-framework-core,Sql,Asp.net,Entity Framework,Asp.net Core,Entity Framework Core,我已经在使用.NETCore2.0(最初是1.0)和EFCore的生产应用程序上工作了很长时间 这是一个代码先行设计的应用程序,因此所有数据库更改都是通过迁移完成的 在最近的部署之前,updatedatabase会正确地进行更改—但是,最近每次添加模型时,它都会创建新的模式(而不是像正常情况一样添加到dbo模式) 例如: New Class Model: Test.cs Table created in Database: DOMAIN\CurrentUser.Test 你知道为什么会这样吗

我已经在使用.NETCore2.0(最初是1.0)和EFCore的生产应用程序上工作了很长时间

这是一个代码先行设计的应用程序,因此所有数据库更改都是通过迁移完成的

在最近的部署之前,updatedatabase会正确地进行更改—但是,最近每次添加模型时,它都会创建新的模式(而不是像正常情况一样添加到dbo模式)

例如:

New Class Model: Test.cs
Table created in Database: DOMAIN\CurrentUser.Test
你知道为什么会这样吗

我想我可以深入研究migrationBuilder,了解它是如何做出模式决策的,但似乎有一些简单的东西必须改变才能改变行为


“DOMAIN\CurrentUser”在相关服务器上具有dbo权限。

要从
EF Core
更改架构,请尝试使用
builder.HasDefaultSchema(“newschema”)进行配置
builder.Entity().ToTable

用于更改所有表的架构

public class ApplicationDbContext : IdentityDbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
    public DbSet<User> User { get; set; }
    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
        builder.HasDefaultSchema("newschema");
    }
}
public类ApplicationDbContext:IdentityDbContext
{
公共应用程序DBContext(DbContextOptions选项)
:基本(选项)
{
}
公共数据库集用户{get;set;}
模型创建时受保护的覆盖无效(ModelBuilder)
{
基于模型创建(生成器);
builder.hasdaultschema(“newschema”);
}
}
用于更改特定表的架构

public class ApplicationDbContext : IdentityDbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
    public DbSet<User> User { get; set; }
    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
        builder.Entity<User>().ToTable("User", "newSchema");
    }
}
public类ApplicationDbContext:IdentityDbContext
{
公共应用程序DBContext(DbContextOptions选项)
:基本(选项)
{
}
公共数据库集用户{get;set;}
模型创建时受保护的覆盖无效(ModelBuilder)
{
基于模型创建(生成器);
builder.Entity().ToTable(“用户”、“新闻模式”);
}
}

与我们分享生成的与
测试
模型相关的迁移。迁移文件中是否有
DOMAIN\CurrentUser
?检查数据库是否更改了数据库中的默认模式。我已经检查了迁移文件中的SQL,其中与模式无关。今晚或明天,我会在下面尝试你的答案