1.首先,说一下EFCore使用DBfist的基础语法 。
dotnet ef dbcontext scaffold "Server=数据库连接地址;Database=数据库名
称;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer 后续参数......
2.语法中的后续参数说明如下表。
简写 | 指令 | 说明 |
-d | --data-annotations | 该参数用于将模型配置,如果省略此选项,则使用仅 fluent API。 |
-c | --context <NAME> | 该参数指定DbContext类生成的名称 |
--context-dir <PATH> | 该参数指定DbContext中的类文件, 路径是相对于项目目录,命名空间派生自文件夹名称 | |
-f | --force | 该参数用于覆盖现有文件 |
-o | --output-dir <PATH | 该参数指定要将实体类文件放入的目录, 路径是相对于项目目录 |
--schema <SCHEMA_NAME>... | 该参数指定要生成的实体类型的表架构。 若要指定多个架构,请重复--schema为每个。 如果省略此选项,则包括所有架构 | |
-t | --table <TABLE_NAME> | 该参数指定要生成的实体类型的表。 若要指定多个表,请重复-t或--table为每个。 如果省略此选项,则包括所有表。 |
--use-database-names | 使用表和列名称与数据库中显示的名称完全一样,请使用表和列的名称。 如果省略了此选项,数据库名称将被更改为更接近于C#名称样式约定。 |
3.有些人可能在参数中找不到生成视图(View)的指令,我在开始也很困惑,后来找到了这个问题的解决方法,需要安装aspnet-codegenerator来处理。
dotnet tool install -g dotnet-aspnet-codegenerator //安装aspnet-codegenerator
dotnet aspnet-codegenerator view --dataContext MyDbContext --model //生成视图对应的model
以上部分摘自官方文档,详情请参阅传送门:https://docs.microsoft.com/zh-cn/ef/core/miscellaneous/cli/powershell