注:閱讀本文,需要閱讀本系列的之前文章 代碼生成器下載地址(文章開頭處)
接下來我們建立數據庫的表和各層的代碼
我們只需要兩張表,文章列表(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

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
數據庫執行表之后,並更新到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中使用