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