EF Code First


===代码优先====

在vs中的“程序包管理器控制台”中输入如下两个命令,也可以在项目所在文件夹中打开命令行工具进行操作

命令一共有5种,每个有两种写法:

dotnet ef migrations add initialCreate     ||  Add-Migrantion (执行此命令项目生成一个目录(Migrations))

dotnet ef database update           ||  Update-Database  (把当前的Migrations更新到数据库中)

dotnet ef migrations remove      ||  Remove-Migration (删除一个最新的Migrations,降级,根据数据库表结构删除migrations文件夹下面多余的文件)

dotnet ef database update LastGoodMigration     ||     Update-Database LastGoodMigration(指定一个Migrations更新  LastGoodMigration 指定的migration名称)

dotnet ef migrations script       ||   Script-Migration   (将更新内容生成sql脚本语句)

 

===数据库优先===

https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell

https://docs.microsoft.com/zh-cn/ef/core/managing-schemas/scaffolding?tabs=dotnet-core-cli

例子

Scaffold-DbContext -Connection "Server=.;Database=EFCoreDemo;uid=sa;pwd=123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir "Models"
Scaffold-DbContext -Connection "Server=****;Database=GZNETCore.Developer;uid=garson;pwd=***" Microsoft.EntityFrameworkCore.SqlServer -OutputDir "Tables" -UseDatabaseNames -Force -DataAnnotations -Context "_EntitiesContext" -Project "GZImageSearch.Model" -StartupProject "GZImageSearch.Model"

指令详细介绍:

Scaffold-DbContext [-Connection] <String> [-Provider] <String> [-OutputDir <String>] [-Context <String>] 

[-Schemas <String>] [-Tables <String>] [-DataAnnotations] [ -Force] [-Project <String>] 

[-StartupProject <String>] [-Environment <String>] [<CommonParameters>]

参数 PARAMETERS

-Connection <String>指定数据库的连接字符串。
-Provider <String> 指定要使用的提供程序。例如,Microsoft.EntityFrameworkCore.SqlServer。
-OutputDir <String> 指定用于输出类的目录。如果省略,则使用顶级项目目录。
-Context <String>指定生成的DbContext类的名称。
-Schemas <String> 指定要为其生成类的模式。
-Tables <String>指定要为其生成类的表。
-DataAnnotations [<SwitchParameter>]使用DataAnnotation属性在可能的情况下配置模型。如果省略,输出代码将仅使用流畅的API。
-Force [<SwitchParameter>]强制脚手架覆盖现有文件。否则,只有在没有输出文件被覆盖的情况下,代码才会继续。
-Project <String>指定要使用的项目。如果省略,则使用默认项目。
-StartupProject <String>指定要使用的启动项目。如果省略,则使用解决方案的启动项目。
-Environment <String> 指定要使用的环境。如果省略,则使用“开发”。

 

  启用密钥存储

机密管理器工具对存储在用户配置文件中的特定于项目的配置设置进行操作。

机密管理器工具 init 在 .NET Core SDK 3.0.100 或更高版本中包含命令。 若要使用用户机密,请在项目目录中运行以下命令:

 

来自 < https://docs.microsoft.com/zh-cn/aspnet/core/security/app-secrets?view=aspnetcore-3.1#secret-manager > 

dotnet user-secrets init

 

连接字符串

该命令的第一个参数是指向数据库的连接字符串。 工具将使用此连接字符串来读取数据库架构。

引号和转义连接字符串的方式取决于您使用哪个 shell 执行命令。 有关详细信息,请参阅 shell 的文档。 例如,PowerShell 要求转义 $ 字符,而不是 \ 。

来自 < https://docs.microsoft.com/zh-cn/ef/core/managing-schemas/scaffolding?tabs=dotnet-core-cli

 

配置和用户机密

如果有 ASP.NET Core 项目,则可以使用 Name=<connection-string> 语法从配置中读取连接字符串。

这很适合用于 机密管理器工具 ,使数据库密码与代码库保持分离。

.NET Core CLI复制

dotnet user-secrets set ConnectionStrings.Chinook "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Chinook"
dotnet ef dbcontext scaffold Name=ConnectionStrings.Chinook Microsoft.EntityFrameworkCore.SqlServer

来自 < https://docs.microsoft.com/zh-cn/ef/core/managing-schemas/scaffolding?tabs=vs

 

 

 

 

 

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
YES开发框架
上一篇:YES-CMS 内容管理系统 TinyMCE编辑插件演示
下一篇:EF Core dotnet-ef 常用命令,指令
评论列表

发表评论

评论内容
昵称:
关联文章

EF Code First
TinyMCE插件开发之《设置Code标签》
EF事务提交
EF 值转换
EF Core dotnet-ef 常用命令,指令
解决winform使用EF6 第一次查询会慢个几秒钟
EF并发处理,防止并发修改数据
EF 分页 SQL2008 报错 Featch Next
EF MySQL取值时出错: Specified cast is not valid
EF Linq查找所有子节点或者所有父节点
VS .NET使用EF添加实体数据模型向导添加连接报错
EF6 Model.tt根据数据库字段说明,生成字段注释
EF Core使用MySQL
EF Cre表实体属性介绍
EF强制生成SQL 2008兼容的SQL语句
EF EntityFramework.MappingAPI批量导入 模型属性顺序和数据库表不一致时导入错位
EF Linq判断数据是新增,删除,还是修改
YESWEB开发框架 技术要求
EFCore官方扩展库
EF生成迁移脚本报错:Entity type '' has a split mapping, but it doesn't map any non-primary key property to the main store object. Keep at least one non-primary key property mapped to a column on '.

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码