EF 核心 2.1。使用自定义数据库架构进行迁移

Ali*_*kau 2 c# entity-framework entity-framework-core .net-core asp.net-core

今天我将一个项目从 EF 2.0 迁移到 EF 2.1。

我想将默认数据库架构从 更改dboMySchema

对于 EF Core 2.0,我使用了以下代码:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.HasDefaultSchema("MySchema");
}
Run Code Online (Sandbox Code Playgroud)

但我在 EF Core 2.1 中看不到.HasDefaultSchema任何方法了。

如何更改 EF Core 2.1 中的默认架构?!

笔记。作为快速解决方案,对每个实体模型使用表注释

[Table("MyEntities", Schema = "MySchema")]
public class MyEntity
{
    public int Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

bom*_*ing 5

它是一个扩展方法,仍然列在2.1 文档中

请注意,您需要命名空间Microsoft.EntityFrameworkCore,并确保您拥有包含以下内容的包Microsoft.EntityFrameworkCore.Relational.dll

您在升级项目时可能错过了该软件包。

  • 感谢@bommelding 的回答。有用。我的问题是我将我的上下文存储在简单库中,而不是默认的 asp.net core 应用程序。应用程序的脚手架包括“Microsoft.AspNetCore.App”元包,它依赖于“Microsoft.EntityFrameworkCore.Relational”。但在我的库中,我只添加了“Microsoft.EntityFrameworkCore”。添加“Microsoft.EntityFrameworkCore.Relational”后,一切都开始工作了!=) (2认同)