netnr/ Scaffold-DbContext 2018-09-21 11:37
dotnet ef core 生成实体
# 公共依赖
Install-Package Microsoft.EntityFrameworkCore.Tools

# MySQL
Install-Package Pomelo.EntityFrameworkCore.MySql
Scaffold-DbContext "Server=.;Port=3306;Database=netnr;uid=root;pwd=123" Pomelo.EntityFrameworkCore.MySql -Force -UseDatabaseNames -DataAnnotations -NoPluralize -NoOnConfiguring -Context ContextBase

#SQLServer
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Scaffold-DbContext "Server=.;Database=netnr;uid=sa;pwd=123" Microsoft.EntityFrameworkCore.SqlServer

#PostgreSQL
Install-Package Npgsql.EntityFrameworkCore.PostgreSQL
Scaffold-DbContext "Host=localhost;Database=netnr;Username=postgres;Password=123" Npgsql.EntityFrameworkCore.PostgreSQL

# 参数
-Connection <String>	    # 与数据库的连接字符串。对于 ASP.NET Core 2.x 项目,该值可以为 name = <连接字符串的名称> 。在这种情况下,名称来自为项目设置的配置源。这是一个位置参数,是必需的
-Provider <String>	        # 要使用的提供者。通常,这是 NuGet 包的名称,例如:Microsoft.EntityFrameworkCore.SqlServer。这是一个位置参数,是必需的。
-OutputDir <String>	        # 放置文件的目录。路径是相对于项目目录的。
-ContextDir <String>	    # 放置 DbContext 文件的目录。路径是相对于项目目录的。
-Namespace <String>	        # 用于所有生成的类的名称空间。默认为从根名称空间和输出目录生成。在 EF Core 5.0 中添加。
-ContextNamespace <String>	# 用于生成的 DbContext 类的名称空间。注意:覆盖 -Namespace。在 EF Core 5.0 中添加。
-Context <String>	        # 要生成的 DbContext 类的名称。
-Schemas <String[]>	        # 要为其生成实体类型的表的模式。如果省略此参数,则包括所有架构。
-Tables <String[]>	        # 要为其生成实体类型的表。如果省略此参数,则包括所有表。
-DataAnnotations	        # 使用属性(如果可能)配置模型。如果省略此参数,则仅使用流畅的 API。
-UseDatabaseNames	        # 使用与数据库中完全相同的表和列名称。如果省略此参数,则更改数据库名称以使其更符合 C#名称样式约定。
-Force	                    # 覆盖现有文件。
-NoOnConfiguring	        # 不生成 DbContext.OnConfiguring。在 EF Core 5.0 中添加。
-NoPluralize	            # 不要使用复数。在 EF Core 5.0 中添加。

# help
https://docs.microsoft.com/en-us/ef/core/cli/powershell
https://docs.microsoft.com/zh-cn/ef/core/cli/dotnet
http://www.npgsql.org/efcore/index.html