• 课时:8
  • 访问:676
  • 时长:00:10:27
  • 日期:2018-06-15 05:31

添加一个MVC5的项目

然后我们打开SQLserver创建一个数据库和一张表

然后我们演示 如何生成实体模型

就是DataFirst的使用了。

我们就用QX这个数据库  这个课程再权限一张 大家可以看

CREATE TABLE [dbo].[Button](
  [ID]
[int] IDENTITY(1,1) NOT NULL,
  [Name]
[nvarchar](30) NULL,
  [Link]
[nvarchar](100) NULL,
  [MenuID]
[int] NULL,
  [AddTime]
[datetime] NULL,
 CONSTRAINT [PK_BUTTON] PRIMARY KEY CLUSTERED 
(
  [ID]
ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

EXEC sys.sp_addextendedproperty
@name=N'MS_Description', @value=N'按钮' ,
@level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'TABLE',@level1name=N'Button'
GO

ALTER TABLE [dbo].[Button]  WITH CHECK ADD  CONSTRAINT [FK_BUTTON_REFERENCE_MENU] FOREIGN
KEY([MenuID])
REFERENCES [dbo].[Menu] ([ID])
GO

ALTER TABLE [dbo].[Button] CHECK
CONSTRAINT [FK_BUTTON_REFERENCE_MENU]
GO

USE [QX]
GO

/******
Object:  Table [dbo].[Menu]    Script Date: 06/15/2018 16:06:47 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Menu](
  [ID]
[int] IDENTITY(1,1) NOT NULL,
  [Name]
[nvarchar](30) NULL,
  [Link]
[nvarchar](100) NULL,
  [AddTime]
[datetime] NULL,
  [ParentID]
[int] NULL,
 CONSTRAINT [PK_MENU] PRIMARY KEY NONCLUSTERED 
(
  [ID]
ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

EXEC sys.sp_addextendedproperty
@name=N'MS_Description', @value=N'主键' ,
@level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'TABLE',@level1name=N'Menu',
@level2type=N'COLUMN',@level2name=N'ID'
GO

EXEC sys.sp_addextendedproperty
@name=N'MS_Description', @value=N'菜单' ,
@level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'TABLE',@level1name=N'Menu'
GO


USE [QX]
GO

/****** Object:  Table [dbo].[Relate]    Script Date: 06/15/2018 16:07:00 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Relate](
  [ID]
[int] IDENTITY(1,1) NOT NULL,
  [Type]
[int] NULL,
  [MenuOrButtonID]
[int] NULL,
  [RoleOrUserID]
[int] NULL,
  [AddTime]
[datetime] NULL,
 CONSTRAINT [PK_RELATE] PRIMARY KEY CLUSTERED 
(
  [ID]
ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

EXEC sys.sp_addextendedproperty
@name=N'MS_Description', @value=N'类型:菜单和角色2 按钮和角色3 菜单和用户4 按钮和用户' ,
@level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'TABLE',@level1name=N'Relate',
@level2type=N'COLUMN',@level2name=N'Type'
GO

EXEC sys.sp_addextendedproperty
@name=N'MS_Description', @value=N'关系表' ,
@level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'TABLE',@level1name=N'Relate'
GO


USE [QX]
GO

/****** Object:  Table [dbo].[Role]    Script Date: 06/15/2018 16:07:23 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Role](
  [ID]
[int] IDENTITY(1,1) NOT NULL,
  [Name]
[nvarchar](30) NULL,
  [AddTime]
[datetime] NULL,
 CONSTRAINT [PK_ROLE] PRIMARY KEY CLUSTERED 
(
  [ID]
ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

EXEC sys.sp_addextendedproperty
@name=N'MS_Description', @value=N'角色' ,
@level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'TABLE',@level1name=N'Role'
GO


USE [QX]
GO

/****** Object:  Table [dbo].[User]    Script Date: 06/15/2018 16:07:35 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[User](
  [ID]
[int] IDENTITY(1,1) NOT NULL,
  [Name]
[nvarchar](30) NULL,
  [RoleID]
[int] NULL,
  [AddTime]
[datetime] NULL,
 CONSTRAINT [PK_USER] PRIMARY KEY CLUSTERED 
(
  [ID]
ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

EXEC sys.sp_addextendedproperty
@name=N'MS_Description', @value=N'用户' ,
@level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'TABLE',@level1name=N'User'
GO

ALTER TABLE [dbo].[User]  WITH CHECK ADD  CONSTRAINT [FK_USER_REFERENCE_ROLE] FOREIGN
KEY([RoleID])
REFERENCES [dbo].[Role] ([ID])
GO

ALTER TABLE [dbo].[User] CHECK CONSTRAINT
[FK_USER_REFERENCE_ROLE]
GO

接下来我看一下(DataFirst)就是先创建数据库 然后通过数据库生成实体模型

当我们再项目上面添加ado.net实体模型的时候 会要求我们选择一个数据库 并且VS会帮我们在项目的web.config下面添加一个字符串链接 比如我们的QXEntities

可以为某一些表 或者视图 或者函数 和存储过程生成实体的。

并且会帮我拿引入ef用到的dll

然后VS会帮我们生成实体类 实体上下文 和实体设计器


图片4.png

同时vs会帮我们生成 edmx 还有一些类 和db上下文


图片5.png