版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一、首先创建一个数据库表
如图:
说明:此表为菜单表,结构和数据来源于前端项目src\router\router.ts中的appRouters值
SQL脚本如下:
/****** Object: Table [dbo].[Sys_Menu] Script Date: 2019/07/25 17:36:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Sys_Menu](
[Id] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[Path] [nvarchar](50) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Permission] [nvarchar](50) NOT NULL,
[Meta] [nvarchar](200) NOT NULL,
[Title] [nvarchar](50) NOT NULL,
[Icon] [nvarchar](50) NOT NULL,
[Component] [nvarchar](100) NOT NULL,
[FatherId] [int] NOT NULL,
[LevelType] [int] NOT NULL,
[StatusType] [int] NOT NULL,
CONSTRAINT [PK_Sys_Menu] 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
SET IDENTITY_INSERT [dbo].[Sys_Menu] ON
GO
INSERT [dbo].[Sys_Menu] ([Id], [Path], [Name], [Permission], [Meta], [Title], [Icon], [Component], [FatherId], [LevelType], [StatusType]) VALUES (1, N'/setting', N'setting', N'', N'', N'ManageMenu', N'', N'main', 0, 1, 1)
GO
INSERT [dbo].[Sys_Menu] ([Id], [Path], [Name], [Permission], [Meta], [Title], [Icon], [Component], [FatherId], [LevelType], [StatusType]) VALUES (2, N'user', N'user', N'Pages.Users', N'', N'Users', N'', N'../views/setting/user/user.vue', 1, 2, 1)
GO
INSERT [dbo].[Sys_Menu] ([Id], [Path], [Name], [Permission], [Meta], [Title], [Icon], [Component], [FatherId], [LevelType], [StatusType]) VALUES (3, N'role', N'role', N'Pages.Roles', N'', N'Roles', N'', N'../views/setting/role/role.vue', 1, 2, 1)
GO
INSERT [dbo].[Sys_Menu] ([Id], [Path], [Name], [Permission], [Meta], [Title], [Icon], [Component], [FatherId], [LevelType], [StatusType]) VALUES (4, N'tenant', N'tenant', N'Pages.Tenants', N'', N'Tenants', N'', N'../views/setting/tenant/tenant.vue', 1, 2, 1)
GO
SET IDENTITY_INSERT [dbo].[Sys_Menu] OFF
GO
二、创建实体
说明:实体文件应放置在领域层(Core中)
如图:
代码如下:
using Abp.Domain.Entities;
namespace PD.Menu
{
public class Sys_Menu : Entity
{
public virtual string Path { get; set; }
public virtual string Name { get; set; }
public virtual string Permission { get; set; }
public virtual string Meta { get; set; }
public virtual string Title { get; set; }
public virtual string Icon { get; set; }
public virtual string Component { get; set; }
public virtual int FatherId { get; set; }
public virtual int LevelType { get; set; }
public virtual int StatusType { get; set; }
}
}
说明:virtual 表示在继承这个类的子类里面可以使用override将此方法重载,也可以不进行override重载,直接进行使用父类,
此处用不用virtual修饰都可以
三、DbContext添加DbSet
说明:基础设施层的DbContext定义DbContext
代码如下:
using Microsoft.EntityFrameworkCore;
using Abp.Zero.EntityFrameworkCore;
using PD.Authorization.Roles;
using PD.Authorization.Users;
using PD.MultiTenancy;
using System.Collections.Generic;
namespace PD.EntityFrameworkCore
{
public class PDDbContext : AbpZeroDbContext<Tenant, Role, User, PDDbContext>
{
/* Define a DbSet for each entity of the application */
//public ISet<Menu.Sys_Menu> Tasks { get; set; }
public virtual DbSet<Menu.Sys_Menu> Sys_Menu { set; get; }
public PDDbContext(DbContextOptions<PDDbContext> options)
: base(options)
{
}
}
}