Scaffold-DbContext 骑猪看日落 2022-01-15 03:21 214阅读 0赞 [为什么80%的码农都做不了架构师?>>> ][80_] ![hot3.png][] ## Scaffold-DbContext ## `Scaffold-DbContext` 是 `EntityFramework(Core)` 用来生成数据库上下文的一个脚手架工具. ## 应用场景 ## * 当你有一个现成的数据库时,可以使用 `Scaffold-DbContext` 生成对应的数据库上下文类及模型类,然后使用 `EntityFrameworkCore` 的方式来愉快的调用,这里会有点 `Database-First`的味道. * ... ## 帮助 ## PM> get-help Scaffold-DbContext 名称 Scaffold-DbContext 摘要 Scaffolds a DbContext and entity types for a database. 语法 Scaffold-DbContext [-Connection] <String> [-Provider] <String> [-OutputDir <String>] [-ContextDir <String>] [-Context <String>] [-Schemas <String[]>] [-Tables <Strin g[]>] [-DataAnnotations] [-UseDatabaseNames] [-Force] [-Project <String>] [-StartupProject <String>] [<CommonParameters>] 说明 Scaffolds a DbContext and entity types for a database. 相关链接 about_EntityFrameworkCore 备注 若要查看示例,请键入: "get-help Scaffold-DbContext -examples". 有关详细信息,请键入: "get-help Scaffold-DbContext -detailed". 若要获取技术信息,请键入: "get-help Scaffold-DbContext -full". 有关在线帮助,请键入: "get-help Scaffold-DbContext -online" ## 参数 ## 无码说个J8,先来一段: PM> Scaffold-DbContext -Connection "server=127.0.0.1;uid=user;pwd=pwd;database=databse;" -Provider Pomelo.EntityFrameworkCore.MySql -OutputDir Models -Context MySqlDbConetxt -Project Zaohua.UserRepository 然后再来看看参数: <table> <thead> <tr> <th align="center">参数名称</th> <th align="center">是否必填</th> <th align="center">默认值</th> <th align="left">描述</th> </tr> </thead> <tbody> <tr> <td align="center">Connection</td> <td align="center">必填</td> <td align="center">""</td> <td align="left">数据库链接字符串,各个数据库的都不大一样</td> </tr> <tr> <td align="center">Provider</td> <td align="center">必填</td> <td align="center">""</td> <td align="left">提供器,针对各个数据库的,通常等于 NuGet 对应的包名称</td> </tr> <tr> <td align="center">Project</td> <td align="center">可选</td> <td align="center">当前类库</td> <td align="left">项目,用来指定脚手架生成的内容放到哪个项目下</td> </tr> <tr> <td align="center">OutputDir</td> <td align="center">可选</td> <td align="center">项目目录下</td> <td align="left">输出目录,用来指定脚手架生成的内容放到哪个目录下,通常指定为"Models"</td> </tr> <tr> <td align="center">Context</td> <td align="center">可选</td> <td align="center">数据库名称+Context</td> <td align="left">上下文名称,用来指定脚手架生成的上下文名称</td> </tr> <tr> <td align="center">Force</td> <td align="center">可选</td> <td align="center">flag 参数,无值</td> <td align="left">强制重写现有的模型类文件</td> </tr> <tr> <td align="center">...</td> <td align="center">可选</td> <td align="center">...</td> <td align="left">其他一些参数,用到了在补充吧...</td> </tr> </tbody> </table> ### Connection ### 参数 `Connection` 常见的值如下: * Mircosoft SQL Server: \`\` * MySQL: `"server=host;uid=user;pwd=password;database=database;"` * SQLite: `Data Source=App_Data/My.db` * ... 通常像这样使用: PM> Scaffold-DbContext -Connection "值" -其他参数 ### Provider ### 参数 `Provider` 常见的值如下: * Mircosoft SQL Server: `Microsoft.EntityFrameworkCore.SqlServer` * MySQL: `MySql.Data.EntityFrameworkCore` \- Oracle官方出的包总是有问题,可用下面这个代替 * MySQL: `Pomelo.EntityFrameworkCore.MySql` * Sqlite: `Microsoft.EntityFrameworkCore.Sqlite` * Oracle: `...` \- 暂时没找到什么好用的,再说 * ... 通常像这样使用: PM> Scaffold-DbContext -Provider 值 -其他参数 ### Force ### 参数 `Force` 通常用来强制重写现有的模型类文件,比如多次生成时. 可以用来规避此类问题`Use the Force flag to overwrite these files.` 像这样使用: PM> Scaffold-DbContext -Force -其他参数 ### ... ### 转载于:https://my.oschina.net/taadis/blog/2221295 [80_]: https://my.oschina.net/u/2663968/blog/3051541 [hot3.png]: /images/20220115/701a257cc2d14c12beea83fa8b5720b9.png
还没有评论,来说两句吧...