我使用的是最新的EFCore版本,Postgres数据库使用DB First方法。当从现有Postgres数据库生成Dbcontext时,它会从表名和列名中删除下划线('_'(。
数据库表结构
生成的DbContext模型结构
我正在使用以下命令生成DbContext:
Scaffold-DbContext "Server=localhost;Port=5432;User Id=postgres;Password=mypassword;Database=SAMPLE_db;" Npgsql.EntityFrameworkCore.PostgreSQL -o DbModels -Schemas "local_dev"
正如Ivan Stove上面提到的,使用dbcontext scaffold--use-database-names
参数。这将从表名和字段中删除下划线之类的内容。
下面是一个使用终端的例子:
dotnet ef dbcontext scaffold "server=*SQL Server name*;user=*user name*;password=*password*;database=*database name*" Microsoft.EntityFrameworkCore.SqlServer -o Models -t *table name 1* -t *table name 2* -t *table name x* -f **--use-database-names**
注:
-o Models
:解决方案中要写入模型文件的文件夹。它必须已经存在。-t Individual table
:这很方便,因为您只希望表的子集生成模型。只需对每张表重复-t