ABP框架,后台-创建实体类Entity(6)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/sinat_16998945/article/details/97279540

一、首先创建一个数据库表

如图:

说明:此表为菜单表,结构和数据来源于前端项目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)
        {
        }
    }
}

猜你喜欢

转载自blog.csdn.net/sinat_16998945/article/details/97279540
今日推荐