从现有数据库构建脚手架并将 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 以确保 类 进入它们自己的文件夹。
我正在使用一个预先存在的 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 以确保 类 进入它们自己的文件夹。