一、建库建表

USE [Test_Demo]
GO
/****** Object:  Table [dbo].[SY_S_DEPARTMENT]    Script Date: 2022/3/21 8:41:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
--树形菜单表SY_S_DEPARTMENT
CREATE TABLE [dbo].[SY_S_DEPARTMENT]([FACILITY] [varchar](10) NOT NULL,[SITE] [varchar](15) NOT NULL,[DEPT_CODE] [varchar](50) NOT NULL,   --当前coed[LINE_ID] [int] NULL,                 --行索引[UPPER_DEPT] [varchar](50) NULL,      --父级coed[CREATOR] [varchar](25) NOT NULL,     --创建人[CREATE_DATE] [datetime] NOT NULL CONSTRAINT [DF_SY_S_DEPARTMENT_CREATE_DATE]  DEFAULT (getdate()), --创建时间[MODIFIER] [varchar](25) NULL,       --修改人[MODIFY_DATE] [datetime] NULL,         --修改时间CONSTRAINT [PK_SY_S_DEPARTMENT] PRIMARY KEY CLUSTERED
([DEPT_CODE] ASC,[FACILITY] ASC,[SITE] 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
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE]    Script Date: 2022/3/21 8:41:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
--字典表
CREATE TABLE [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE]([LOOKUP_TYPE] [varchar](80) NOT NULL,[LOOKUP_VALUE] [varchar](50) NOT NULL,[MEANING] [nvarchar](100) NOT NULL,[LANGUAGE] [varchar](10) NOT NULL,[CREATOR] [varchar](25) NOT NULL,[CREATE_DATE] [datetime] NOT NULL,[MODIFIER] [varchar](25) NULL,[MODIFY_DATE] [datetime] NULL,CONSTRAINT [PK_SY_S_GLOBAL_TABLE_LANGUAGE_VALUE] PRIMARY KEY CLUSTERED
([LOOKUP_TYPE] ASC,[LOOKUP_VALUE] ASC,[LANGUAGE] 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
SET ANSI_PADDING OFF
GO
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'-JEB77', 1, N'', N'admin', CAST(N'2021-08-23 17:10:46.603' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'-KJB89', 2, N'-JEB77', N'admin', CAST(N'2021-08-23 17:10:58.503' AS DateTime), N'admin', CAST(N'2021-08-25 09:26:14.790' AS DateTime))
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'OVU11', 2, N'-JEB77', N'admin', CAST(N'2021-08-23 17:13:10.267' AS DateTime), N'admin', CAST(N'2021-08-25 09:25:58.157' AS DateTime))
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'PVQ80', 4, N'-JEB77', N'admin', CAST(N'2021-08-23 17:18:39.377' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'PVQ80-MMZ22', 6, N'PVQ80', N'admin', CAST(N'2021-08-23 17:18:51.320' AS DateTime), N'admin', CAST(N'2021-08-24 15:11:06.910' AS DateTime))
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'PVQ80-XFL25', 6, N'PVQ80', N'admin', CAST(N'2021-08-23 17:18:58.800' AS DateTime), N'admin', CAST(N'2021-08-24 15:11:04.877' AS DateTime))
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'TGC68', 7, N'-JEB77', N'admin', CAST(N'2021-08-23 17:13:58.413' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XLE66', 8, N'-JEB77', N'admin', CAST(N'2021-08-23 17:17:17.787' AS DateTime), N'admin', CAST(N'2021-08-23 17:17:50.333' AS DateTime))
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XLE66-EIB40', 9, N'XLE66', N'admin', CAST(N'2021-08-23 17:18:23.443' AS DateTime), N'admin', CAST(N'2021-08-23 17:22:42.563' AS DateTime))
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XLE66-GOJ97', 10, N'XLE66', N'admin', CAST(N'2021-08-23 17:18:31.330' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XLE66-IIO60', 11, N'XLE66', N'admin', CAST(N'2021-08-23 17:17:44.663' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XLE66-NBN57', 2, N'-JEB77', N'admin', CAST(N'2021-08-23 17:22:47.197' AS DateTime), N'admin', CAST(N'2021-08-25 09:26:17.657' AS DateTime))
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XLE66-QUO52', 13, N'XLE66', N'admin', CAST(N'2021-08-23 17:17:37.150' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XLE66-USO29', 14, N'XLE66', N'admin', CAST(N'2021-08-23 17:17:28.790' AS DateTime), N'admin', CAST(N'2021-08-23 17:23:07.150' AS DateTime))
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XUD08', 18, N'-JEB77', N'admin', CAST(N'2021-08-23 17:15:30.067' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XUD08-ERW93', 10, N'XUD08', N'admin', CAST(N'2021-08-23 17:16:48.160' AS DateTime), N'QINGYOU.LI', CAST(N'2021-10-25 15:12:42.890' AS DateTime))
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XUD08-EZV98', 23, N'XUD08', N'admin', CAST(N'2021-08-23 17:17:08.100' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XUD08-FID15', 24, N'XUD08', N'admin', CAST(N'2021-08-23 17:16:23.643' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XUD08-GVZ39', 25, N'XUD08', N'admin', CAST(N'2021-08-23 17:16:38.343' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XUD08-IRM47', 26, N'XUD08', N'admin', CAST(N'2021-08-23 17:16:05.323' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XUD08-JUD89', 10, N'XUD08', N'admin', CAST(N'2021-08-23 17:15:47.403' AS DateTime), N'admin', CAST(N'2021-09-15 10:27:02.697' AS DateTime))
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'XUD08-MJH63', 28, N'XUD08', N'admin', CAST(N'2021-08-23 17:16:14.873' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'YRT64', 29, N'-JEB77', N'admin', CAST(N'2021-08-23 17:19:08.837' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'YRT64-SOF31', 30, N'YRT64', N'admin', CAST(N'2021-08-23 17:19:24.567' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'YRT64-YZR91', 27, N'YRT64', N'admin', CAST(N'2021-08-23 17:19:34.083' AS DateTime), N'admin', CAST(N'2021-09-15 08:03:51.747' AS DateTime))
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'ZFL31', 32, N'-JEB77', N'admin', CAST(N'2021-08-23 17:12:18.823' AS DateTime), N'admin', CAST(N'2021-08-23 17:29:29.750' AS DateTime))
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'ZFL31-OKR21', 4, N'ZFL31', N'admin', CAST(N'2021-08-23 17:15:18.357' AS DateTime), N'admin', CAST(N'2022-01-20 15:50:10.040' AS DateTime))
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'ZFL31-ORN15', 4, N'ZFL31', N'admin', CAST(N'2021-08-23 17:14:47.257' AS DateTime), N'admin', CAST(N'2022-01-20 15:50:07.040' AS DateTime))
INSERT [dbo].[SY_S_DEPARTMENT] ([FACILITY], [SITE], [DEPT_CODE], [LINE_ID], [UPPER_DEPT], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'APAT', N'SZ', N'ZFL31-XFF51', 4, N'ZFL31', N'admin', CAST(N'2021-08-23 17:15:04.457' AS DateTime), N'admin', CAST(N'2022-01-20 15:50:01.553' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'-JEB77', N'深圳市亚派光电器件有限公司', N'zh-cn', N'admin', CAST(N'2021-08-23 17:10:46.603' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'-KJB89', N'财务中心', N'zh-cn', N'admin', CAST(N'2021-08-23 17:10:58.503' AS DateTime), N'admin', CAST(N'2021-08-25 09:26:14.790' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'KWY41', N'总经办', N'zh-cn', N'xiaomin_xie', CAST(N'2021-08-23 09:12:35.543' AS DateTime), N'admin', CAST(N'2021-08-23 16:46:17.900' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'OVU11', N'组件业务中心', N'zh-cn', N'admin', CAST(N'2021-08-23 17:13:10.267' AS DateTime), N'admin', CAST(N'2021-08-25 09:25:58.157' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'PVQ80', N'采购中心', N'zh-cn', N'admin', CAST(N'2021-08-23 17:18:39.377' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'PVQ80-MMZ22', N'采购执行组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:18:51.320' AS DateTime), N'admin', CAST(N'2021-08-24 15:11:06.910' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'PVQ80-XFL25', N'采购开发组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:18:58.800' AS DateTime), N'admin', CAST(N'2021-08-24 15:11:04.877' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'TGC68', N'品质管理中心', N'zh-cn', N'admin', CAST(N'2021-08-23 17:13:58.413' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XLE66', N'研发中心', N'zh-cn', N'admin', CAST(N'2021-08-23 17:17:17.787' AS DateTime), N'admin', CAST(N'2021-08-23 17:17:50.333' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XLE66-EIB40', N'模块组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:18:23.443' AS DateTime), N'admin', CAST(N'2021-08-23 17:22:42.563' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XLE66-GOJ97', N'中试/测试组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:18:31.330' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XLE66-IIO60', N'研发管理组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:17:44.663' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XLE66-NBN57', N'总经办', N'zh-cn', N'admin', CAST(N'2021-08-23 17:22:47.197' AS DateTime), N'admin', CAST(N'2021-08-25 09:36:43.723' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XLE66-QUO52', N'通用研发组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:17:37.150' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XLE66-USO29', N'可靠性组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:17:28.790' AS DateTime), N'admin', CAST(N'2021-08-23 17:23:07.150' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XUD08', N'制造中心', N'zh-cn', N'admin', CAST(N'2021-08-23 17:15:30.067' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XUD08-ERW93', N'计划与外协管理部', N'zh-cn', N'admin', CAST(N'2021-08-23 17:16:48.160' AS DateTime), N'QINGYOU.LI', CAST(N'2021-10-25 15:12:42.890' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XUD08-EZV98', N'IT组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:17:08.100' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XUD08-FID15', N'工程组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:16:23.643' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XUD08-GVZ39', N'TO车间', N'zh-cn', N'admin', CAST(N'2021-08-23 17:16:38.343' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XUD08-IRM47', N'模块车间', N'zh-cn', N'admin', CAST(N'2021-08-23 17:16:05.323' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XUD08-JUD89', N'检验组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:15:47.403' AS DateTime), N'admin', CAST(N'2021-09-15 10:27:02.697' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'XUD08-MJH63', N'组件车间', N'zh-cn', N'admin', CAST(N'2021-08-23 17:16:14.873' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'YRT64', N'综合管理中心', N'zh-cn', N'admin', CAST(N'2021-08-23 17:19:08.837' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'YRT64-SOF31', N'人力资源组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:19:24.567' AS DateTime), NULL, NULL)
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'YRT64-YZR91', N'党群公共事务组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:19:34.083' AS DateTime), N'admin', CAST(N'2021-09-15 08:03:51.747' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'ZFL31', N'销售中心', N'zh-cn', N'admin', CAST(N'2021-08-23 17:12:18.823' AS DateTime), N'admin', CAST(N'2021-08-23 17:29:29.750' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'ZFL31-OKR21', N'客户服务组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:15:18.357' AS DateTime), N'admin', CAST(N'2022-01-20 15:50:10.040' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'ZFL31-ORN15', N'销售组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:14:47.257' AS DateTime), N'admin', CAST(N'2022-01-20 15:50:07.040' AS DateTime))
INSERT [dbo].[SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE] ([LOOKUP_TYPE], [LOOKUP_VALUE], [MEANING], [LANGUAGE], [CREATOR], [CREATE_DATE], [MODIFIER], [MODIFY_DATE]) VALUES (N'SY_S_DEPARTMENT.DEPT_CODE', N'ZFL31-XFF51', N'FAE组', N'zh-cn', N'admin', CAST(N'2021-08-23 17:15:04.457' AS DateTime), N'admin', CAST(N'2022-01-20 15:50:01.553' AS DateTime))


二、创建项目


层级介绍:
Web层 UI 层
Services 业务逻辑接口层
Repository 业务数据处理层
Models 实体映射层
TestServices 业务逻辑单元测试层

设置引用关系:
Web层 调用 Models、Services 层
Services层 调用 Repository、Models 层
Repository层 调用 Models 层
Models层 实体层

TestServices 业务逻辑单元测试层 调用 Models、Services 层

①Models层 创建
EF CORE 映射实体:
安装 NuGet 包
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools

映射实体

PM> Scaffold-DbContext -Force “Server=.;database=Test_Demo;Trusted_Connection=True;” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

映射的表和 Context

修改Context OnConfiguring方法

public static string ConnectionString { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{if (!optionsBuilder.IsConfigured){#warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see http://go.microsoft.com/fwlink/?LinkId=723263.//optionsBuilder.UseSqlServer("Server=.;database=Test_Demo;Trusted_Connection=True;");optionsBuilder.UseSqlServer(ConnectionString);}
}

关于一些复杂的SQL语句,EF 实现难度大可以 添加 SQLDBHelper

    public class SQLHelper{static string connectionString = string.Empty;public SQLHelper(string ConnectionStrings){//连接字符串connectionString = ConnectionStrings;}#region 执行查询,返回DataTable对象-----------------------public static DataTable GetTable(string strSQL){return GetTable(strSQL, null);}public static DataTable GetTable(string strSQL, SqlParameter[] pas){return GetTable(strSQL, pas, CommandType.Text);}/// <summary>/// 执行查询,返回DataTable对象/// </summary>/// <param name="strSQL">sql语句</param>/// <param name="pas">参数数组</param>/// <param name="cmdtype">Command类型</param>/// <returns>DataTable对象</returns>public static DataTable GetTable(string strSQL, SqlParameter[] pas, CommandType cmdtype){DataTable dt = new DataTable();using (SqlConnection conn = new SqlConnection(connectionString)){SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);da.SelectCommand.CommandType = cmdtype;if (pas != null){da.SelectCommand.Parameters.AddRange(pas);}da.Fill(dt);}return dt;}#endregion#region 执行查询,返回DataSet对象-------------------------public static DataSet GetDataSet(string strSQL){return GetDataSet(strSQL, null);}public static DataSet GetDataSet(string strSQL, SqlParameter[] pas){return GetDataSet(strSQL, pas, CommandType.Text);}/// <summary>/// 执行查询,返回DataSet对象/// </summary>/// <param name="strSQL">sql语句</param>/// <param name="pas">参数数组</param>/// <param name="cmdtype">Command类型</param>/// <returns>DataSet对象</returns>public static DataSet GetDataSet(string strSQL, SqlParameter[] pas, CommandType cmdtype){DataSet dt = new DataSet();using (SqlConnection conn = new SqlConnection(connectionString)){SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);da.SelectCommand.CommandType = cmdtype;if (pas != null){da.SelectCommand.Parameters.AddRange(pas);}da.Fill(dt);}return dt;}#endregion#region 执行非查询存储过程和SQL语句-----------------------------public static int ExcuteProc(string ProcName){return ExcuteSQL(ProcName, null, CommandType.StoredProcedure);}public static int ExcuteProc(string ProcName, SqlParameter[] pars){return ExcuteSQL(ProcName, pars, CommandType.StoredProcedure);}public static int ExcuteSQL(string strSQL){return ExcuteSQL(strSQL, null);}public static int ExcuteSQL(string strSQL, SqlParameter[] paras){return ExcuteSQL(strSQL, paras, CommandType.Text);}/// 执行非查询存储过程和SQL语句/// 增、删、改/// </summary>/// <param name="strSQL">要执行的SQL语句</param>/// <param name="paras">参数列表,没有参数填入null</param>/// <param name="cmdType">Command类型</param>/// <returns>返回影响行数</returns>public static int ExcuteSQL(string strSQL, SqlParameter[] paras, CommandType cmdType){int i = 0;using (SqlConnection conn = new SqlConnection(connectionString)){SqlCommand cmd = new SqlCommand(strSQL, conn);cmd.CommandType = cmdType;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();i = cmd.ExecuteNonQuery();conn.Close();}return i;}#endregion#region 执行查询返回第一行,第一列---------------------------------public static int ExcuteScalarSQL(string strSQL){return ExcuteScalarSQL(strSQL, null);}public static int ExcuteScalarSQL(string strSQL, SqlParameter[] paras){return ExcuteScalarSQL(strSQL, paras, CommandType.Text);}public static int ExcuteScalarProc(string strSQL, SqlParameter[] paras){return ExcuteScalarSQL(strSQL, paras, CommandType.StoredProcedure);}/// <summary>/// 执行SQL语句,返回第一行,第一列/// </summary>/// <param name="strSQL">要执行的SQL语句</param>/// <param name="paras">参数列表,没有参数填入null</param>/// <returns>返回影响行数</returns>public static int ExcuteScalarSQL(string strSQL, SqlParameter[] paras, CommandType cmdType){int i = 0;using (SqlConnection conn = new SqlConnection(connectionString)){SqlCommand cmd = new SqlCommand(strSQL, conn);cmd.CommandType = cmdType;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();i = Convert.ToInt32(cmd.ExecuteScalar());conn.Close();}return i;}#endregion#region 查询获取单个值------------------------------------/// <summary>/// 调用不带参数的存储过程获取单个值/// </summary>/// <param name="ProcName"></param>/// <returns></returns>public static object GetObjectByProc(string ProcName){return GetObjectByProc(ProcName, null);}/// <summary>/// 调用带参数的存储过程获取单个值/// </summary>/// <param name="ProcName"></param>/// <param name="paras"></param>/// <returns></returns>public static object GetObjectByProc(string ProcName, SqlParameter[] paras){return GetObject(ProcName, paras, CommandType.StoredProcedure);}/// <summary>/// 根据sql语句获取单个值/// </summary>/// <param name="strSQL"></param>/// <returns></returns>public static object GetObject(string strSQL){return GetObject(strSQL, null);}/// <summary>/// 根据sql语句 和 参数数组获取单个值/// </summary>/// <param name="strSQL"></param>/// <param name="paras"></param>/// <returns></returns>public static object GetObject(string strSQL, SqlParameter[] paras){return GetObject(strSQL, paras, CommandType.Text);}/// <summary>/// 执行SQL语句,返回首行首列/// </summary>/// <param name="strSQL">要执行的SQL语句</param>/// <param name="paras">参数列表,没有参数填入null</param>/// <returns>返回的首行首列</returns>public static object GetObject(string strSQL, SqlParameter[] paras, CommandType cmdtype){object o = null;using (SqlConnection conn = new SqlConnection(connectionString)){SqlCommand cmd = new SqlCommand(strSQL, conn);cmd.CommandType = cmdtype;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();o = cmd.ExecuteScalar();conn.Close();}return o;}#endregion#region 查询获取DataReader------------------------------------/// <summary>/// 调用不带参数的存储过程,返回DataReader对象/// </summary>/// <param name="procName">存储过程名称</param>/// <returns>DataReader对象</returns>public static SqlDataReader GetReaderByProc(string procName){return GetReaderByProc(procName, null);}/// <summary>/// 调用带有参数的存储过程,返回DataReader对象/// </summary>/// <param name="procName">存储过程名</param>/// <param name="paras">参数数组</param>/// <returns>DataReader对象</returns>public static SqlDataReader GetReaderByProc(string procName, SqlParameter[] paras){return GetReader(procName, paras, CommandType.StoredProcedure);}/// <summary>/// 根据sql语句返回DataReader对象/// </summary>/// <param name="strSQL">sql语句</param>/// <returns>DataReader对象</returns>public static SqlDataReader GetReader(string strSQL){return GetReader(strSQL, null);}/// <summary>/// 根据sql语句和参数返回DataReader对象/// </summary>/// <param name="strSQL">sql语句</param>/// <param name="paras">参数数组</param>/// <returns>DataReader对象</returns>public static SqlDataReader GetReader(string strSQL, SqlParameter[] paras){return GetReader(strSQL, paras, CommandType.Text);}/// <summary>/// 查询SQL语句获取DataReader/// </summary>/// <param name="strSQL">查询的SQL语句</param>/// <param name="paras">参数列表,没有参数填入null</param>/// <returns>查询到的DataReader(关闭该对象的时候,自动关闭连接)</returns>public static SqlDataReader GetReader(string strSQL, SqlParameter[] paras, CommandType cmdtype){SqlDataReader sqldr = null;SqlConnection conn = new SqlConnection(connectionString);SqlCommand cmd = new SqlCommand(strSQL, conn);cmd.CommandType = cmdtype;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();//CommandBehavior.CloseConnection的作用是如果关联的DataReader对象关闭,则连接自动关闭sqldr = cmd.ExecuteReader(CommandBehavior.CloseConnection);return sqldr;}#endregion#region 批量插入数据---------------------------------------------/// <summary>/// 往数据库中批量插入数据/// </summary>/// <param name="sourceDt">数据源表</param>/// <param name="targetTable">服务器上目标表</param>public static void BulkToDB(DataTable sourceDt, string targetTable){SqlConnection conn = new SqlConnection(connectionString);SqlBulkCopy bulkCopy = new SqlBulkCopy(conn);//用其它源的数据有效批量加载sql server表中bulkCopy.DestinationTableName = targetTable;//服务器上目标表的名称bulkCopy.BatchSize = sourceDt.Rows.Count;   //每一批次中的行数try{conn.Open();if (sourceDt != null && sourceDt.Rows.Count != 0)bulkCopy.WriteToServer(sourceDt);   //将提供的数据源中的所有行复制到目标表中}catch (Exception ex){throw ex;}finally{conn.Close();if (bulkCopy != null)bulkCopy.Close();}}#endregion/// <summary>/// 连接数据库/// </summary>/// <param name="connStr">默认为null</param>/// <returns>SqlConnection</returns>public static SqlConnection CreateSqlConnection(string connStr = null){SqlConnection conn = new SqlConnection();conn.ConnectionString = connStr == null ? connectionString : connStr;conn.Open();return conn;}#region Execute命令/// <summary>/// 执行带参数的增删改SQL语句或存储过程/// </summary>/// <param name="safeSql">增删改T-Sql语句或存储过程</param>/// <param name="paras">参数</param>/// <param name="ct">指定如何解释命令字符串</param>/// <param name="connStr">连接字符串</param>/// <returns>是否成功</returns>public static bool ExecuteNonQuery(string safeSql, SqlParameter[] paras, CommandType ct, string connStr = null){using (SqlConnection Connection = new SqlConnection(connStr == null ? connectionString : connStr)){if (Connection.State != ConnectionState.Open){Connection.Open();}SqlCommand cmd = new SqlCommand(safeSql, Connection);cmd.CommandType = ct;if (paras != null){cmd.Parameters.AddRange(paras);}return Convert.ToInt32(cmd.ExecuteNonQuery()) > 0;}}/// <summary>/// 执行带参数的增删改SQL语句/// </summary>/// <param name="safeSql">增删改T-Sql语句</param>/// <param name="connStr">连接字符串</param>/// <returns>是否成功</returns>public static bool ExecuteNonQuery(string safeSql, string connStr = null){using (SqlConnection Connection = new SqlConnection(connStr == null ? connectionString : connStr)){if (Connection.State != ConnectionState.Open){Connection.Open();}SqlCommand cmd = new SqlCommand(safeSql, Connection);return Convert.ToInt32(cmd.ExecuteNonQuery()) > 0;}}/// <summary>  /// 查询结果集中第一行第一列的值  /// </summary>  /// <param name="safeSql">T-Sql语句</param>  /// <returns>结果集T类型</returns>  public static object ExecuteScalar(string safeSql, string connStr = null){using (SqlConnection Connection = new SqlConnection(connStr == null ? connectionString : connStr)){if (Connection.State != ConnectionState.Open)Connection.Open();SqlCommand cmd = new SqlCommand(safeSql, Connection);return ExecuteScalar(safeSql, cmd);}}/// <summary>  /// 查询结果集中第一行第一列的值  /// </summary>  /// <param name="safeSql">T-Sql语句</param>  /// <returns>结果集T类型</returns>  public static object ExecuteScalar(string safeSql, SqlCommand command){SqlCommand cmd = new SqlCommand(safeSql, command.Connection);return cmd.ExecuteScalar();}/// <summary>  /// 执行查询T-SQL语句/// </summary>  /// <param name="safeSql">T-Sql语句</param>  /// <returns>结果集DataTable</returns>  public static DataTable ExecuteDataTable(string safeSql, string connStr = null){using (SqlConnection Connection = new SqlConnection(connStr == null ? connectionString : connStr)){if (Connection.State != ConnectionState.Open){Connection.Open();}SqlCommand cmd = new SqlCommand(safeSql, Connection);return ExecuteDataTable(safeSql, cmd);}}/// <summary>/// 执行查询T-SQL语句/// </summary>/// <param name="safeSql">T-SQL语句</param>/// <param name="Connection">SqlConnection</param>/// <returns>结果集DataTable</returns>private static DataTable ExecuteDataTable(string safeSql, SqlCommand command){DataSet ds = new DataSet();SqlDataAdapter da = new SqlDataAdapter(command);try{da.Fill(ds);}catch (Exception ex){}return ds.Tables[0];}/// <summary>/// 执行查询T-SQL语句/// </summary>/// <typeparam name="T">T类型</typeparam>/// <param name="safeSql">T-SQL语句</param>/// <param name="command">command</param>/// <returns>返回List</returns>public static List<T> ExecuteToList<T>(string safeSql, SqlCommand command){var data = ExecuteDataTable(safeSql, command);return ConvertTo<T>(data);}/// <summary>/// 执行查询T-SQL语句/// </summary>/// <typeparam name="T">T类型</typeparam>/// <param name="safeSql">T-SQL语句</param>/// <returns>返回List</returns>public static List<T> ExecuteToList<T>(string safeSql, string connStr = null){var data = ExecuteDataTable(safeSql, connStr);return ConvertTo<T>(data);}/// <summary>/// 执行查询T-SQL语句/// </summary>/// <typeparam name="T">T类型</typeparam>/// <param name="safeSql">T-SQL语句</param>/// <param name="connStr">连接字符串</param>/// <returns>T类型</returns>public static T ExecuteFirstOrDefault<T>(string safeSql, string connStr = null){var table = ExecuteDataTable(safeSql, connStr);T obj = default(T);foreach (DataRow item in table.Rows){obj = CreateItem<T>(item);}return obj;}/// <summary>/// 执行查询T-SQL语句/// </summary>/// <typeparam name="T">T类型</typeparam>/// <param name="sql">T-SQL语句</param>/// <param name="conn">SqlConnection</param>/// <returns>T类型</returns>public static T ExecuteFirstOrDefault<T>(string sql, SqlCommand command){var table = ExecuteDataTable(sql, command);T obj = default(T);foreach (DataRow item in table.Rows){obj = CreateItem<T>(item);}return obj;}/// <summary>/// SQL 分页查询/// </summary>/// <typeparam name="T"></typeparam>/// <param name="sql">SQL语句</param>/// <param name="order">排序字段</param>/// <param name="page">当前页数</param>/// <param name="size">每页总记录数</param>/// <param name="desc">排序方式</param>/// <returns></returns>public static PagedResultInOut<T> SqlPage<T>(string sql, string order, int page, int size, string desc = "DESC"){try{string pageSql = $@"SELECT * FROM(SELECT ROW_NUMBER()OVER(ORDER BY {order} {desc}) NUMBER,* FROM({sql})AS [PAGE]) AS NUMBERTABLE WHERE NUMBER>=({size}*{page}-{size}) AND NUMBER<={size}*{page}";string countSql = $@"SELECT COUNT(0) FROM ({sql}) AS [COUNT]";using (SqlConnection Connection = new SqlConnection(connectionString)){if (Connection.State != ConnectionState.Open)Connection.Open();DataSet ds = new DataSet();SqlCommand page_cmd = new SqlCommand(pageSql, Connection);SqlDataAdapter da = new SqlDataAdapter(page_cmd);SqlCommand count_cmd = new SqlCommand(countSql, Connection);int count = Convert.ToInt32(count_cmd.ExecuteScalar());try{da.Fill(ds);}catch (Exception ex){return new PagedResultInOut<T>() { Msg = ex.Message, Rows = new List<T>(), Total = 0 };}var list = ConvertTo<T>(ds.Tables[0]);return new PagedResultInOut<T>() { Msg = "查询成功", Total = count, Rows = list };}}catch (Exception ex){return new PagedResultInOut<T>() { Msg = ex.Message, Rows = new List<T>(), Total = 0 };}}#endregion#region 常用类public class PagedResultInOut<T>{/// <summary>/// 总条数/// </summary>public int Total { get; set; }/// <summary>/// 数据/// </summary>public List<T> Rows { get; set; }/// <summary>/// 提示/// </summary>public string Msg { get; set; }}/// <summary>/// DataTable转Json/// </summary>/// <param name="table"></param>/// <returns></returns>public static string DataTableToJson(DataTable table){var JsonString = new StringBuilder();if (table.Rows.Count > 0){JsonString.Append("[");for (int i = 0; i < table.Rows.Count; i++){JsonString.Append("{");for (int j = 0; j < table.Columns.Count; j++){if (j < table.Columns.Count - 1){JsonString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\",");}else if (j == table.Columns.Count - 1){JsonString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\"");}}if (i == table.Rows.Count - 1){JsonString.Append("}");}else{JsonString.Append("},");}}JsonString.Append("]");}return JsonString.ToString();}#endregion#region 将DataTable转Listpublic static List<T> ConvertTo<T>(DataTable table){if (table == null){return null;}List<DataRow> rows = new List<DataRow>();foreach (DataRow row in table.Rows){rows.Add(row);}return ConvertTo<T>(rows);}public static List<T> ConvertTo<T>(List<DataRow> rows){List<T> list = null;if (rows != null){list = new List<T>();foreach (DataRow row in rows){T item = CreateItem<T>(row);list.Add(item);}}return list;}public static T CreateItem<T>(DataRow row){T obj = default(T);if (row != null){obj = Activator.CreateInstance<T>();foreach (DataColumn column in row.Table.Columns){PropertyInfo prop = obj.GetType().GetProperty(column.ColumnName);try{object value = row[column.ColumnName];prop.SetValue(obj, value, null);}catch{ //You can log something here//throw;}}}return obj;}#endregion}

②Repository 层创建 (引用Models层)

    public class TheTreeRepository : Test_DemoContext{Test_DemoContext Contexts = new Test_DemoContext();//Contexts.WDPackingListLevels.Where(x => true).ToList();SQLHelper sqlhelper = new SQLHelper(Test_DemoContext.ConnectionString);public IList<SySDepartment> WDPackingListLevelsRepository(){return SySDepartments.Where(x => true).ToList();/** *  var model = db.WDPackingListLevels.Where(x => true).ToList();//获取sql查询//1.创建接收实体:ModelName.cs//2.添加到数据库上下文:public virtual DbSte<ModelName> modelname {get; set;}//3.获取//var sql = "SELECT * FROM dbo.W_D_PACKING_LIST_LEVEL";//var model = db.Set<WDPackingListLevel>().FromSqlRaw(sql).ToList();*//*using (var db = new iROCK_DEVContext()){var model = db.WDPackingListLevels.Where(x => true).ToList();//获取sql查询//1.创建接收实体:ModelName.cs//2.添加到数据库上下文:public virtual DbSte<ModelName> modelname {get; set;}//3.获取//var sql = "SELECT * FROM dbo.W_D_PACKING_LIST_LEVEL";//var model = db.Set<WDPackingListLevel>().FromSqlRaw(sql).ToList();return View(model);}*/}public DataTable WDPackingListLevelsRepositoryDT(){var sql = "SELECT * FROM dbo.W_D_PACKING_LIST_LEVEL";var model = Set<SySDepartment>().FromSqlRaw(sql);return (DataTable)model;}public IList<SySDepartment> WDPackingListLevelsRepository3(){var sql = "SELECT * FROM dbo.W_D_PACKING_LIST_LEVEL";var dt = SQLHelper.GetTable(sql);var model = Set<SySDepartment>().FromSqlRaw(sql).ToList();return model;}public DataTable GetTreeDataRepository(){//树形菜单绑定string str = $@"IF NOT OBJECT_ID(N'Tempdb..#T2') IS NULLDROP TABLE #T2;SELECT  R.id, DE.DEPT_CODE ,VA.MEANING AS name ,DE.UPPER_DEPT,R1.parentId,LINE_ID,ISNULL(DE.MODIFY_DATE,ISNULL(VA.MODIFY_DATE,ISNULL(R.MODIFY_DATE,ISNULL(R1.MODIFY_DATE,DE.CREATE_DATE)))) AS UP_DATEINTO #T2FROM    SY_S_DEPARTMENT DEINNER JOIN SY_S_GLOBAL_MULTIPLE_LANGUAGE_VALUE VA ON DE.DEPT_CODE = VA.LOOKUP_VALUEINNER JOIN ( SELECT ROW_NUMBER() OVER ( ORDER BY CREATE_DATE,DEPT_CODE ASC ) AS id ,DEPT_CODE,MODIFY_DATEFROM   SY_S_DEPARTMENT) AS R ON R.DEPT_CODE = DE.DEPT_CODE LEFT JOIN ( SELECT ROW_NUMBER() OVER ( ORDER BY CREATE_DATE,DEPT_CODE ASC ) AS ParentId ,DEPT_CODE,MODIFY_DATEFROM   SY_S_DEPARTMENT) AS R1 ON R1.DEPT_CODE = DE.UPPER_DEPTWHERE   VA.LANGUAGE ='zh-cn' --'zh-cn'AND DE.FACILITY='APAT'AND DE.SITE='SZ'; WITH    menu ( id, name, DEPT_CODE, UPPER_DEPT, parentId,LINE_ID,UP_DATE, Level, px, px2 )AS ( SELECT   id ,name ,DEPT_CODE ,UPPER_DEPT ,parentId ,LINE_ID,UP_DATE,0 AS Level ,id px ,CAST(id AS NVARCHAR(4000)) px2FROM     #T2WHERE    parentId IS NULLUNION ALLSELECT   A.id ,A.name ,A.DEPT_CODE ,A.UPPER_DEPT ,A.parentId ,A.LINE_ID,A.UP_DATE,B.Level + 1 ,B.px ,B.px2 + LTRIM(A.id)FROM     #T2 AINNER JOIN menu B ON A.parentId = B.id)SELECT  id ,name ,DEPT_CODE ,UPPER_DEPT ,CASE WHEN parentId IS NULL AND DEPT_CODE='DO' AND id=1 THEN 0WHEN parentId IS NULL AND DEPT_CODE <>'DO'AND id<>1 THEN 1ELSE parentIdEND AS parentId ,LINE_ID,Level ,px ,px2FROM    menuORDER BY LINE_ID ASC,UP_DATE DESC;";return SQLHelper.GetTable(str);}}

③Services 层创建 (引用 Models、Repository 层)

Interface接口层

public interface ITheTreeServices
{//DataTable IndexFilter(string whitelistdto, string param);DataTable GetCodeDescByCodeNamet();IList<SySDepartment> WDPackingListLevelsRepository1();DataTable GetTreeData();
}

Implementation接口调用层

public class TheTreeServices : TheTreeRepository, ITheTreeServices
{public TheTreeServices() { }public DataTable GetCodeDescByCodeNamet(){DataTable data = WDPackingListLevelsRepositoryDT();return data;}public IList<SySDepartment> WDPackingListLevelsRepository1(){return WDPackingListLevelsRepository3();}public DataTable GetTreeData(){return GetTreeDataRepository();}
}

④Web层 Controllers 调用 Implementation 方法

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Models.Models;
using Services.Implementation;
using System.Diagnostics;
using System.Linq;
using TREE.Models;namespace TREE.Controllers
{public class HomeController : Controller{TheTreeServices _thetreeservices = new TheTreeServices();private readonly ILogger<HomeController> _logger;public HomeController(ILogger<HomeController> logger){_logger = logger;}public IActionResult Index(){//var model="";var dt = _thetreeservices.GetTreeData();var model = _thetreeservices.WDPackingListLevelsRepository();return View(model);}}
}

配置文件:
appsettings.json

{"ConnectionString": {"SqlServerConnectionString": "Server=.;database=Test_Demo;Trusted_Connection=True;" //"Server=192.168.0.0000;Database=datename;User ID=iROCK;Password=12###;"},"Logging": {"LogLevel": {"Default": "Information","Microsoft": "Warning","Microsoft.Hosting.Lifetime": "Information"}},"AllowedHosts": "*"
}

Startup.cs

// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{Test_DemoContext.ConnectionString = Configuration["ConnectionString:SqlServerConnectionString"];services.AddControllersWithViews();
}


demo 下载

搭建.NET CORE MVC + EF CORE 的Demo相关推荐

  1. ASP.NET Core MVC+EF Core从开发到部署

    笔记本电脑装了双系统(Windows 10和Ubuntu16.04)快半年了,平时有时间就喜欢切换到Ubuntu系统下耍耍Linux,熟悉熟悉Linux命令.Shell脚本以及Linux下的各种应用的 ...

  2. ASP.NET Core 和 EF Core系列教程——CRUD

    ASP.NET Core 和 EF Core系列教程--CRUD (2 / 10) CRUD 为创建.读取.更新.删除的英文首字母的缩写 作者:Tom Dykstra和Rick Anderson Co ...

  3. .Net Core 使用EF Core codefirst模式

    .Net Core 使用EF Core codefirst模式 什么是codefirst模式 EF Core有两种数据库设计模式,DBfirst 数据库优先.Codefirst 代码优先. 1.我们一 ...

  4. 【ASP.NET Core】EF Core 模型与数据库的创建

    大家好,欢迎收看由土星卫视直播的大型综艺节目--老周吹逼逼. 今天咱们吹一下 EF Core 有关的话题.先说说模型和数据库是怎么建起来的,说装逼一点,就是我们常说的 "code first ...

  5. ASP.NET Core 使用 EF Core

    一.NuGet安装EF Core支持的程序包,使用sql server 数据库 右键单击"项目" > "管理NuGet程序包" 查找安装 sql serv ...

  6. sqlserver连接字符串_10分钟使用EF Core连接MSSQL数据库

    (给DotNet加星标,提升.Net技能) 转自:Ron.liang cnblogs.com/viter/p/10243577.html 前言 在 .NET Core 2.2中Microsoft.As ...

  7. Asp.net Core + EF Core + Bootstrap搭建的MVC后台通用管理系统模板(跨平台版本)

    6月随着.NET CORE PREVIEW2的发布,JUCHEAP 的CORE版本也由之前的JuCheap Core 1.0升级到了JuCheap Core 2.0,并且已经在将core版本应用到了生 ...

  8. 用ASP.NET Core MVC 和 EF Core 构建Web应用 (一)

    系统必备 .NET Core 2.0.0 SDK 或更高版本. 已安装 ASP.NET 和 Web 开发工作负载的 Visual Studio 2017 15.3 版或更高版本. 创建Web应用程序 ...

  9. 基于Asp.Net Core Mvc和EntityFramework Core 的实战入门教程系列-2

    来个目录吧: 第一章-入门 第二章- Entity Framework Core Nuget包管理 第三章-创建.修改.删除.查询 第四章-排序.过滤.分页.分组 第五章-迁移,EF Core 的co ...

最新文章

  1. idea spring helloworld
  2. 前端学习(1270):接口调用async/await
  3. 我的飞鸽传书程序,很好!!!
  4. linux scp限制传输速度
  5. QT + MinGW 中文显示乱码解决方案
  6. post方式加载iframe
  7. (转)Low-Mid-High
  8. BE THE PIONEER FROM APSARADB——2018云栖大会·深圳峰会·云数据库在线直播分论坛
  9. (原创)c#学习笔记10--定义类成员01--成员定义03--定义属性
  10. 第十章 隐马尔可夫模型
  11. Typora、Markdown 字体样式
  12. 我不是领导,用考虑数字化转型么?
  13. 30M DEM数据处理成图
  14. 内地移动支付全球领先?醒醒吧,香港在这5个方面已赶超内地了!
  15. 成功破解苹果iPhone全功能之网友教程篇
  16. 那些在一个公司死磕了5-10年的人,最后都怎么样了?那些在一个公司死磕了5-10年的人,最后都怎么样了?...
  17. Redis 集群搭建(三):Docker 部署 Redis + Sentinel 高可用集群
  18. 负载均衡负载场景和解决方案
  19. Android 最小化界面
  20. Vuzix的M100安卓智能眼镜和Google Glass不同

热门文章

  1. 电脑搜不到wifi?新换的路由器
  2. 应用程序中的服务器错误 怎么解决办法,iwms出现“/”应用程序中的服务器错误。解决办法...
  3. Zhong__Linux系统安装MongoDB数据库
  4. ArrayList源码分析
  5. 学会不被洗脑 很重要!
  6. CSS : 七彩呼吸灯
  7. 没钱不能创业,教写商业计划书
  8. 阿里面试现场实录,三轮技术面+HR面总结归纳,属于包教包会的面经了
  9. 关于用同一个Form写编辑和添加的VUE报错
  10. 美杜莎暴力破解ssh【服务使用有危险,望君谨慎】