.Net 核心 CLI DbContext 脚手架将 table 名称更改为 sigular
.Net core CLI DbContext scaffold changed table name to sigular
对于现有数据库和现有代码,从 .Net 核心 3.x 升级到 .Net 5 后,来自以下命令的所有映射 classes 都变成单数,例如书籍 -> 书籍:
C:\myproject>dotnet ef dbcontext scaffold connectionstr Microsoft.EntityFrameworkCore.SqlServer -f -o ..\Data\Models\ApplicationData
这是版本信息:
C:\myproject>dotnet --version
5.0.303
C:\myproject>dotnet ef --version
Entity Framework Core .NET Command Line Tools
2.0.3-rtm-10026
我也用了--use-database-names,好像没什么效果。另外,我对 EF 生成的列名很满意 :)。但是我怎样才能将 s/ies 保留在 class 名称的末尾?
更新:
我通过发出以下命令更新了 CLI 工具:
dotnet tool update --global dotnet-ef --version 5.0
更新成功。而且还是同一个版本2.0.3-rtm-10026。命令列表也一样。
TIA
我知道这不是最好的方法,但正在发布。我将三个 EF 包(.design、sqlserver 和工具)从 5.0.15 降级到 3.1.24,这暂时解决了问题。
您可以使用 --no-pluralize 选项。
参考:
https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-5.0/breaking-changes
对于现有数据库和现有代码,从 .Net 核心 3.x 升级到 .Net 5 后,来自以下命令的所有映射 classes 都变成单数,例如书籍 -> 书籍:
C:\myproject>dotnet ef dbcontext scaffold connectionstr Microsoft.EntityFrameworkCore.SqlServer -f -o ..\Data\Models\ApplicationData
这是版本信息:
C:\myproject>dotnet --version
5.0.303
C:\myproject>dotnet ef --version
Entity Framework Core .NET Command Line Tools
2.0.3-rtm-10026
我也用了--use-database-names,好像没什么效果。另外,我对 EF 生成的列名很满意 :)。但是我怎样才能将 s/ies 保留在 class 名称的末尾?
更新: 我通过发出以下命令更新了 CLI 工具:
dotnet tool update --global dotnet-ef --version 5.0
更新成功。而且还是同一个版本2.0.3-rtm-10026。命令列表也一样。
TIA
我知道这不是最好的方法,但正在发布。我将三个 EF 包(.design、sqlserver 和工具)从 5.0.15 降级到 3.1.24,这暂时解决了问题。
您可以使用 --no-pluralize 选项。
参考: https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-5.0/breaking-changes