.net ef 迁移错误“未选择在其中创建模式”

问题描述 投票:0回答:1

我不知道我哪里做错了。

我的数据库(Postgre)中有 2 个模式:BooksStore 和 PollHub。 我的项目应该使用 BooksStore。我使用 ef 代码优先方法在架构中创建表。

所以我用谷歌搜索了两天并尝试了所有可能的解决方案,但没有任何效果。

这里是我的代码中的一些片段:

protected override void OnModelCreating(ModelBuilder builder)
{
    builder.HasDefaultSchema("booksstore");
    builder.Entity<BookEntity>().ToTable("Books", schema: "BooksStore");

    base.OnModelCreating(builder);
}

我的连接字符串:“主机=;端口=5432;数据库=postgres;SearchPath=BooksStore;用户名=postgres;密码=;” 我尝试过不使用搜索路径 - 都是一样的。

如果需要,我可以提供更多代码片段或其他内容。

我将我的模式的使用和创建授予了 public 和 postgres 角色(但我猜它默认情况下作为所有者具有使用和创建)。

有人知道我下一步应该尝试什么吗?我的数据库配置有问题吗?

c# .net postgresql entity-framework
1个回答
0
投票

如果架构已经存在,您可以在下面编写,表格将创建 确保模式名称应与您创建的完全相同

public BooksContext(DbContextOptions<BooksContext> options) : base(options) { }

public DbSet<Book> Books { get; set; }

protected override void OnModelCreating(ModelBuilder builder)
{
    builder.HasDefaultSchema("BooksStore");
}
© www.soinside.com 2019 - 2024. All rights reserved.