EntityFrameCore DbFirst 迁移

发布于:2025-02-25 ⋅ 阅读:(22) ⋅ 点赞:(0)

ORM框架:不用关心sql语句,只需要以类为单位,去操作数据库,以面向对象的思想来完成对数据库的操作。

EntityFrameCore-DbFirst

Nuget引入程序集

Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools

执行脚本

Scaffold-DbContext "Data Source=.;Initial 
Catalog=LearnCustomerDB;User ID=sa;Password=123456" 
Microsoft.EntityFrameworkCore.SqlServer 
-OutputDir Models -ContextDir Models -Context CustomerDbContext -Force

-OutputDir 实体文件所存放的文件目录

-ContextDir 文件存放的目录

-Context 文件名

-Schemas 需要生成实体数据的数据表所在的模式

-Tables 需要生成实体数据的数据表的集合

-DataAnnotations

-UseDatabaseNames 直接使用数据库中的表名和列名(某些版本不支持)

-Force 强制执行,重写已经存在的实体文件

添加连接

数据库 LearnCustomerDB 

创建表

GO
/****** Object:  Table [dbo].[Commodity]     ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Commodity](
	[Id] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
	[ProductId] [bigint] NULL,
	[CategoryId] [int] NULL,
	[Title] [varchar](500) NULL,
	[Price] [decimal](18, 2) NULL,
	[Url] [varchar](1000) NULL,
	[ImageUrl] [varchar](1000) NULL,
 CONSTRAINT [PK_Commodity] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Company]     ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Company](
	[Id] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
	[Name] [varchar](50) NULL,
	[CreateTime] [datetime] NULL,
	[CreatorId] [int] NOT NULL,
	[LastModifierId] [int] NULL,
	[LastModifyTime] [datetime] NULL,
 CONSTRAINT [PK_Company] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS