Jos*_*h L 2 sql sql-server entity-framework entity-framework-core asp.net-core
我目前正在使用 EF Core 2.1 代码优先迁移来创建 SQL Server 架构。当我使用以下命令在 SQL Server 中创建/更新表时”
dotnet ef database update
Run Code Online (Sandbox Code Playgroud)
它在我的表前面加上“db_owner”前缀。例如“db_owner.drivers”。
有没有办法在代码中从我的 ef 配置文件设置数据库前缀名称?或者这是 SQL Server 本身实际配置的东西?
您可以ToTable在 dbContext 中使用来设置方案名称,如果您不指定,EF core 将dbo按照约定使用。
public class MyDbContext
{
private string schemaName = "MyPrefix";
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<MyEntity>().ToTable("MyTable", schemaName );
}
}
Run Code Online (Sandbox Code Playgroud)
如果您想在配置文件(appsettings.json)中设置 schemaName:
{
"schemaName": "MyPrefix",
}
Run Code Online (Sandbox Code Playgroud)
您可以使用 DI 在 dbContext 文件中获取配置。
public class MyDbContext
{
private readonly IConfiguration _configuration;
public MyDbContext(DbContextOptions<ApplicationDbContext> options, IConfiguration configuration)
: base(options)
{
_configuration = configuration;
}
...// DbSet<>
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<MyEntity>().ToTable("MyTable", _configuration["schemaName"]);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1453 次 |
| 最近记录: |