ASP.NET Core中如何为含空格的数据库表生成脚手架模型?
解决带空格表名的Scaffold-DbContext生成问题
当目标表名包含空格时,直接输入会导致命令将空格识别为多个表的分隔符,或者使用下划线匹配不到实际表名,正确的处理方式是将带空格的表名用引号包裹,作为一个整体参数传递。
正确命令示例
在PowerShell或CMD中,使用双引号包裹带空格的表名:
Scaffold-DbContext "Server=CRM_server;Database=CRMDB;User ID=CRM_access;Password=" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Tables "Supieriors types" -Force
如果需要同时生成多个表(包括已有的2个模型对应的表),可以用逗号分隔多个带引号的表名:
Scaffold-DbContext "Server=CRM_server;Database=CRMDB;User ID=CRM_access;Password=" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Tables "ExistingTable1", "ExistingTable2", "Supieriors types" -Force
错误原因说明
- 第一种尝试未给表名加引号,命令将
Supieriors types解析为两个独立的表名(Supieriors和types),数据库中不存在这两个表,导致执行失败。 - 第二种尝试将空格替换为下划线,使用
Supieriors_types作为表名,但数据库中实际表名是带空格的Supieriors types,无法匹配到目标表,因此提示Build failed。
内容的提问来源于stack exchange,提问作者Nir4s
相关产品推荐
相关产品推荐

