构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(35)-文章发布系统②-构建项目

简介: 原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(35)-文章发布系统②-构建项目 注:阅读本文,需要阅读本系列的之前文章 代码生成器下载地址(文章开头处)  接下来我们建立数据库的表和各层的代码 我们只需要两张表,文章列表(MIS_Article)...

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(35)-文章发布系统②-构建项目

注:阅读本文,需要阅读本系列的之前文章 代码生成器下载地址(文章开头处) 

接下来我们建立数据库的表和各层的代码

我们只需要两张表,文章列表(MIS_Article)和类别表(MIS_Article_Category)

USE [AppDB]
GO

/****** Object:  Table [dbo].[MIS_Article]    Script Date: 05/15/2014 17:33:15 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[MIS_Article](
    [Id] [varchar](50) NOT NULL,   --主键
    [ChannelId] [int] NOT NULL,    --频道(预留字段,以后可能需要扩张)
    [CategoryId] [varchar](50) NOT NULL, --类别
    [Title] [varchar](100) NOT NULL,  --标题
    [ImgUrl] [varchar](255) NULL,   --图片
    [BodyContent] [varchar](8000) NULL, --内容
    [Sort] [int] NULL,    --排序
    [Click] [int] NULL,   --访问次数
    [CheckFlag] [int] NOT NULL, --是否审核
    [Checker] [varchar](50) NULL, --审核人
    [CheckDateTime] [datetime] NULL, --审核时间
    [Creater] [varchar](50) NULL, --创建人
    [CreateTime] [datetime] NULL, --创建时间
 CONSTRAINT [PK__MIS_Arti__3214EC07038683F8] 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 ANSI_PADDING OFFQ
GO

ALTER TABLE [dbo].[MIS_Article]  WITH CHECK ADD  CONSTRAINT [FK_MIS_Article_MIS_Article_Category] FOREIGN KEY([CategoryId])
REFERENCES [dbo].[MIS_Article_Category] ([Id])
GO

ALTER TABLE [dbo].[MIS_Article] CHECK CONSTRAINT [FK_MIS_Article_MIS_Article_Category]
GO

ALTER TABLE [dbo].[MIS_Article]  WITH CHECK ADD  CONSTRAINT [FK_MIS_Article_SysUser] FOREIGN KEY([Creater])
REFERENCES [dbo].[SysUser] ([Id])
GO

ALTER TABLE [dbo].[MIS_Article] CHECK CONSTRAINT [FK_MIS_Article_SysUser]
GO

ALTER TABLE [dbo].[MIS_Article]  WITH NOCHECK ADD  CONSTRAINT [FK_MIS_Article_SysUser1] FOREIGN KEY([Checker])
REFERENCES [dbo].[SysUser] ([Id])
ON DELETE SET NULL
GO

ALTER TABLE [dbo].[MIS_Article] CHECK CONSTRAINT [FK_MIS_Article_SysUser1]
GO

ALTER TABLE [dbo].[MIS_Article] ADD  CONSTRAINT [DF_MIS_Article_CheckFlag]  DEFAULT ((0)) FOR [CheckFlag]
GO

ALTER TABLE [dbo].[MIS_Article] ADD  CONSTRAINT [DF__MIS_Artic__Creat__056ECC6A]  DEFAULT (getdate()) FOR [CreateTime]
GO
MIS_Article
USE [AppDB]
GO

/****** Object:  Table [dbo].[MIS_Article_Category]    Script Date: 05/15/2014 17:37:44 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[MIS_Article_Category](
    [Id] [varchar](50) NOT NULL, --主键
    [ChannelId] [int] NULL,  --预留字段
    [Name] [varchar](100) NOT NULL, --类别名
    [ParentId] [varchar](50) NULL, --上级ID
    [Sort] [int] NULL, --排序
    [ImgUrl] [varchar](255) NULL,--图片
    [BodyContent] [varchar](8000) NULL,--描述
    [CreateTime] [datetime] NULL,--创建时间
    [Enable] [bit] NOT NULL, --是否启用
 CONSTRAINT [PK__MIS_Arti__3214EC077DCDAAA2] 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 ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[MIS_Article_Category]  WITH NOCHECK ADD  CONSTRAINT [FK_MIS_Article_Category_MIS_Article_Category] FOREIGN KEY([ParentId])
REFERENCES [dbo].[MIS_Article_Category] ([Id])
GO

ALTER TABLE [dbo].[MIS_Article_Category] NOCHECK CONSTRAINT [FK_MIS_Article_Category_MIS_Article_Category]
GO

ALTER TABLE [dbo].[MIS_Article_Category] ADD  CONSTRAINT [DF__MIS_Artic__Paren__7FB5F314]  DEFAULT ((0)) FOR [ParentId]
GO

ALTER TABLE [dbo].[MIS_Article_Category] ADD  CONSTRAINT [DF__MIS_Artic__Creat__00AA174D]  DEFAULT (getdate()) FOR [CreateTime]
GO
MIS_Article_Category

 数据库执行表之后,并更新到EF。

1.新建项目类库,App.MIS.IBLL,App.MIS.BLL,App.MIS.IDAL,App.MIS.DAL和App.Models下的MIS文件夹(并进行相互的引用,引用参照DAL,BLL层)

2.打开我们的代码生成器生成文章列表(MIS_Article)和类别表(MIS_Article_Category)的各层,并放入我们的类库,然后实行注入到系统

注:生成器能生成增删改查

最后生成目录如下所示

 

3.我们这次使用区域,使用区域最大的好处在于项目分离

   新建区域,在Areas上右键新建区域,输入MIS,以后我们一个区域代表的是一个子系统!

   可以扩展CMS(内容管理系统) CRM(客户管理系统)等系统实现项目分离

其中的ArticleController和CategoryController ManageArticleController MyArticleController对应的是上一篇导航模块里面的地址链接

其中ManageArticle是管理员能看到所有文章的模块和具有审核功能,MyArticle只能看到自己发布的,你可以把这个发布系统,看成是一个内部的文章共享系统

4.编译系统,看看有无引用出错等信息,并修改,Easy to you!

现在估计可以运行系统,并能获取简单的视图了

第一次生成并不能生成我下面这种效果,需要再加一些特效,我下面是已经审核过的会表为蓝色。

下一节,kindeditor在MVC中使用

目录
相关文章
|
8月前
|
前端开发 JavaScript 关系型数据库
使用 OpenAuth.Net 快速搭建 .NET 企业级权限工作流系统
使用 OpenAuth.Net 快速搭建 .NET 企业级权限工作流系统
244 0
|
11月前
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
464 0
|
前端开发 C# 开发者
.NET使用Umbraco CMS快速构建一个属于自己的内容管理系统
.NET使用Umbraco CMS快速构建一个属于自己的内容管理系统
252 12
|
Web App开发 前端开发 调度
一款基于 .NET + Blazor 开发的智能访客管理系统
一款基于 .NET + Blazor 开发的智能访客管理系统
234 8
|
开发框架 JavaScript 前端开发
精选2款.NET开源的博客系统
精选2款.NET开源的博客系统
260 8
|
前端开发 JavaScript C#
基于.NET8+Vue3开发的权限管理&个人博客系统
基于.NET8+Vue3开发的权限管理&个人博客系统
222 7
|
开发框架 安全 Java
.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力
本文深入探讨了.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力。.NET不仅支持跨平台开发,具备出色的安全性和稳定性,还能与多种技术无缝集成,为企业级应用提供全面支持。
496 3
|
关系型数据库 C# 数据库
.NET 8.0 开源在线考试系统(支持移动端)
【10月更文挑战第27天】以下是适用于 .NET 8.0 的开源在线考试系统(支持移动端)的简介: 1. **基于 .NET Core**:跨平台,支持多种数据库,前后端分离,适用于多操作系统。 2. **结合 Blazor**:使用 C# 开发 Web 应用,支持响应式设计,优化移动端体验。 3. **基于 .NET MAUI**:跨平台移动应用开发,一套代码多平台运行,提高开发效率。 开发时需关注界面设计、安全性与稳定性。
431 4
|
JSON 安全 数据安全/隐私保护
从0到1搭建权限管理系统系列三 .net8 JWT创建Token并使用
【9月更文挑战第22天】在.NET 8中,从零开始搭建权限管理系统并使用JWT(JSON Web Tokens)创建Token是关键步骤。JWT是一种开放标准(RFC 7519),用于安全传输信息,由头部、载荷和签名三部分组成。首先需安装`Microsoft.AspNetCore.Authentication.JwtBearer`包,并在`Program.cs`中配置JWT服务。接着,创建一个静态方法`GenerateToken`生成包含用户名和角色的Token。最后,在控制器中使用`[Authorize]`属性验证和解析Token,从而实现身份验证和授权功能。
1381 4
|
Windows
.NET 隐藏/自定义windows系统光标
【10月更文挑战第20天】在.NET中,可以使用`Cursor`类来控制光标。要隐藏光标,可将光标设置为`Cursors.None`。此外,还可以通过从文件或资源加载自定义光标来更改光标的样式。例如,在表单加载时设置`this.Cursor = Cursors.None`隐藏光标,或使用`Cursor.FromFile`方法加载自定义光标文件,也可以将光标文件添加到项目资源中并通过资源管理器加载。这些方法适用于整个表单或特定控件。
282 0