从现有数据库构建脚手架并将 class 文件放入架构子文件夹时如何在命名空间中包含 postgresql 架构名称

How to include a postgrsql schema name in the namespace when scaffolding from an existing database and place class files into a schema subfolders

我正在使用一个预先存在的 postgressql 数据库,该数据库具有多个模式并且其中 tables。在 .Net Core Web 应用程序中使用实体框架,我可以成功地对数据库进行逆向工程。

我担心的是,迟早会在不同的架构中出现同名的 table。生成的 classes 没有显示不同模式的迹象。

CREATE TABLE customers."user" (
    id integer NOT NULL,
    name text
);

CREATE TABLE administrators."user" (
    id integer NOT NULL,
    name text
);

这两个 table 在同一文件夹中生成为 User.cs 和 User1.cs class。我希望 class 中的名称 space 包含架构名称,并将 class 文件放入架构子文件夹中:

.../Entities/Customers/User.cs

namespace DataAccess.Entities.Customers
{
    public partial class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}

.../Entities/Administrators/User.cs

namespace DataAccess.Entities.Administrators
{
    public partial class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}

我试过在连接字符串中 'Search Path' 以及数据库名称后的 .customers ,都没有用。

是否可以将 classes 生成到不同的文件夹中并将架构包含在 class 的名称 space 中?

非常感谢任何建议。

对此的快速回答是将 --schema 添加到 dotnet ef 命令行。但是必须为每个模式执行此操作,并设置 -o 以确保 类 进入它们自己的文件夹。