Entity Framework Core 数据库优先(DB First)

DB First

1.从Nuget包中安装Entity Framework的依赖

  1. EntityFrameworkCore
  2. EntityFrameworkCore.SqlServer
  3. EntityFrameworkCore.Tools
其中Tools依赖包是用于在Nuget包中的管理控制台中执行以下命令之一,该命令是用于从数据库中生成对应的实体类与数据操作对象:
Scaffold-DbContext [-Connection] <String> [-Provider] <String> [-OutputDir <String>] [-Context <String>] 
[-Schemas <String>] [-Tables <String>] [-DataAnnotations] [ -Force] [-Project <String>] 
[-StartupProject <String>] [-Environment <String>] [<CommonParameters>]
参数介绍:

-Connection :
指定数据库的连接字符串。

-Provider :
指定要使用的提供程序。例如,Microsoft.EntityFrameworkCore.SqlServer。

-OutputDir :
指定用于输出类的目录。如果省略,则使用顶级项目目录。

-Context :
指定生成的DbContext类的名称。

-Schemas :
指定要为其生成类的模式。

-Tables :
指定要为其生成类的表。

-DataAnnotations :
使用DataAnnotation属性在可能的情况下配置模型。如果省略,输出代码将仅使用流畅的API。

-Force :
强制脚手架覆盖现有文件。否则,只有在没有输出文件被覆盖的情况下,代码才会继续。

-Project :
指定要使用的项目。如果省略,则使用默认项目。

-StartupProject :
指定要使用的启动项目。如果省略,则使用解决方案的启动项目。

-Environment :
指定要使用的环境。如果省略,则使用“开发”。

-UseDatabaseNames:使用数据库的表名、字段名生成实体类

示例:

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -UseDatabaseNames -OutputDir Models
在appsetting.json添加连接字符串
  "ConnectionStrings": {
    "XinTaiWebGIS": "Server=;Database=XinTaiWebGIS;Trusted_Connection=True;MultipleActiveResultSets=true"
  }
在Startup.cs添加依赖注入
services.AddDbContext<数据操作对象>(options => options.UseSqlServer(Configuration.GetConnectionString(这里添加appsetting.json中添加的连接字符串主键)));

EF Core工具命令

使用Nuget管理控制台模式

  1. Add-Migration :添加一个新的迁移,string是迁移的名称
  2. remove-Migration:删除上一次的迁移
  3. Update-Database:更新最近一次的迁移到数据库(有时候可能与原来的数据库产生冲突,所以可能并不能迁移到数据库)
  4. Update-Database -Migration: 表示清空数据库,回到空数据库状态
  5. Script-Migration:查看迁移脚本

使用cmd模式

  1. dotnet ef migrations add InitialCreate -v
  2. dotnet ef database update -v
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Winform和Entity Framework Core进行多数据库操作时,我们需要注意以下几个方面。 首先,需要在项目中引入Entity Framework Core的相关包。 接下来,在创建DbContext时,我们需要根据具体的数据库类型(例如MySQL、SQL Server等)来选择不同的数据库提供程序。可以通过在DbContext的构造函数中传入相应的数据库连接字符串来实现。 在操作数据库时,可以使用Entity Framework Core提供的数据库迁移功能来自动创建数据库表和更新数据库结构。通过运行`add-migration`和`update-database`命令,可以根据实体类的变化来自动创建表和更新数据库。 在多数据库操作时,我们需要为每个数据库定义独立的DbContext,并在业务代码中根据具体需求使用不同的DbContext进行操作。 需要注意的是,在使用多数据库时,我们还需要考虑事务管理的问题。可以使用Entity Framework Core提供的`Database.BeginTransactionAsync`方法来开启一个事务,然后在事务中执行多个数据库操作。 另外,为了便于管理和维护代码,我们可以将操作不同数据库的代码封装为不同的服务或仓储类,并使用依赖注入来注入具体的实现。这样可以提高代码的可读性和可维护性。 总结来说,使用Winform和Entity Framework Core进行多数据库操作需要注意选择合适的数据库提供程序、定义独立的DbContext、使用数据库迁移来管理数据库结构、注意事务管理,并将代码进行封装和依赖注入,以提高代码的可读性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值