博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学用MVC4做网站四:公共模型
阅读量:6336 次
发布时间:2019-06-22

本文共 7547 字,大约阅读时间需要 25 分钟。

网站内可能包含文章、留言、产品等,这些内容都有像标题、发布日期,发布人,所属栏目……一部分共同数据,把这些数据做个公共模型放到一个单独模型中。

字段

名称

类型

必填

默认值

说明

CommonModelId

模型Id

Int[key]

 

 

CategoryId

栏目

Int

 

 

Inputer

用户

string(255)

 

 

Model

模型名称

string(50)

Article

 

Title

标题

String(255)

 

 

Hits

点击

Int

0

 

ReleaseDate

发布日期

Datetime

Now

 

Status

状态

Int

0

0-待审核;1-正常

PicUrl

首页图片

string(255)

 

 

CommentStatus

评论状态

bool

True

False关闭评论,True-依栏目设置

 

 

 

 

 

 

ContentOrders

内容排序方式

List<SelectListItem>

未映射

 

0-默认设置;1-id降序;2-id升序;3-发布时间降序;4-发布时间升序;5-点击降序,6-点击升序

Category

栏目

Category

外键

 

 

在Modles文件夹点右键添加类CommonModel.cs

using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;using System.ComponentModel.DataAnnotations.Schema;using System.Web.Mvc;namespace Ninesky.Models{    ///     /// 公共模型    ///     public class CommonModel    {        [Key]        public int CommonModelId { get; set; }        ///         /// 栏目Id        ///         [Display(Name="栏目")]        [Required(ErrorMessage="×")]        public int CategoryId { get; set; }        ///         /// 录入者        ///         [Display(Name="录入者")]        [Required(ErrorMessage = "×")]        [StringLength(255, ErrorMessage = "×")]        public string Inputer { get; set; }        ///         /// 模型名称        ///         [Display(Name="模型名称")]        [Required()]        [StringLength(50)]        public string Model { get; set; }        ///         /// 标题        ///         [Display(Name="标题")]        [Required(ErrorMessage = "×")]        [StringLength(255, ErrorMessage = "×")]        public string Title { get; set; }        ///         /// 点击        ///         [Display(Name = "点击")]        [Required(ErrorMessage = "×")]        public int Hits { get; set; }        ///         /// 发布日期        ///         [Display(Name = "发布日期")]        [Required(ErrorMessage = "×")]        public DateTime ReleaseDate { get; set; }        ///         /// 状态【0-待审核;1-正常】        ///         [Display(Name="状态")]        [Required(ErrorMessage = "×")]        public int Status { get; set; }        ///         /// 首页图片        ///         [Display(Name="首页图片")]        [StringLength(255, ErrorMessage = "×")]        public string PicUrl { get; set; }        ///         /// 评论状态        ///         [Display(Name="评论状态")]        [Required(ErrorMessage = "×")]        public bool CommentStatus { get; set; }        ///         /// 栏目        ///         public virtual Category Category { get; set; }        public CommonModel()        {            ReleaseDate = System.DateTime.Now;        }        [NotMapped]        public static List
ContentOrders { get { List
_cOrders = new List
(7); _cOrders.Add(new SelectListItem { Text = "默认排序", Value = "0" }); _cOrders.Add(new SelectListItem { Text = "Id降序", Value = "1" }); _cOrders.Add(new SelectListItem { Text = "Id升序", Value = "2" }); _cOrders.Add(new SelectListItem { Text = "发布时间降序", Value = "3" }); _cOrders.Add(new SelectListItem { Text = "发布时间升序", Value = "4" }); _cOrders.Add(new SelectListItem { Text = "点击降序", Value = "5" }); _cOrders.Add(new SelectListItem { Text = "点击升序", Value = "6" }); return _cOrders; } } [NotMapped] public static List
ContentStatus { get { List
_cStatus = new List
(2); _cStatus.Add(new SelectListItem { Text = "待审核", Value = "0" }); _cStatus.Add(new SelectListItem { Text = "正常", Value = "1" }); return _cStatus; } } }}

 

在Repository文件夹点右键添加类CommonModelRepository

using Ninesky.Models;using System.Linq;using System.Web.Mvc;namespace Ninesky.Repository{    public class CommonModelRepository:RepositoryBase
{ public override bool Add(CommonModel cModel) { dbContext.CommonModels.Add(cModel); return dbContext.SaveChanges() > 0; } public override bool Update(CommonModel cModel) { dbContext.CommonModels.Attach(cModel); dbContext.Entry
(cModel).State = System.Data.EntityState.Modified; return dbContext.SaveChanges() > 0; } public override bool Delete(int cModelId) { dbContext.CommonModels.Remove(dbContext.CommonModels.SingleOrDefault(m => m.CommonModelId == cModelId)); return dbContext.SaveChanges() > 0; } ///
/// 获取分页公共模型内容列表 /// ///
栏目Id ///
是否包含子栏目 ///
模型名称 ///
用户名 ///
当前页 ///
每页记录数 ///
排序方式 ///
分页数据
public PagerData
List(int categoryId, bool cChildren,string model, string userName, int currentPage, int pageSize, int order) { PagerConfig _pConfig = new PagerConfig { CurrentPage = currentPage, PageSize = pageSize }; var _cModels = dbContext.CommonModels.Include("Category").AsQueryable(); if (categoryId != 0) { if (cChildren)//包含子栏目 { CategoryRepository _cRsy = new CategoryRepository(); IQueryable
_children = _cRsy.Children(categoryId, 0).Select(c => c.CategoryId); _cModels = _cModels.Where(m => _children.Contains(m.CategoryId)); } else _cModels = _cModels.Where(m => m.CategoryId == categoryId);//不包含子栏目 } if (!string.IsNullOrEmpty(model)) _cModels = _cModels.Where(m => m.Model == model); if (!string.IsNullOrEmpty(userName))_cModels = _cModels.Where(m => m.Inputer == userName); _pConfig.TotalRecord = _cModels.Count();//总记录数 //排序 switch (order) { case 1://id降序 _cModels = _cModels.OrderByDescending(m => m.CommonModelId); break; case 2://Id升序 _cModels = _cModels.OrderBy(m => m.CommonModelId); break; case 3://发布日期降序 _cModels = _cModels.OrderByDescending(m => m.ReleaseDate); break; case 4://发布日期升序 _cModels = _cModels.OrderBy(m => m.ReleaseDate); break; case 5://点击降序 _cModels = _cModels.OrderByDescending(m => m.Hits); break; case 6://点击升序 _cModels = _cModels.OrderBy(m => m.Hits); break; default://默认id降序 _cModels = _cModels.OrderByDescending(m => m.CommonModelId); break; } //分页 _cModels = _cModels.Skip((_pConfig.CurrentPage - 1) * _pConfig.PageSize).Take(_pConfig.PageSize); PagerData
_pData = new PagerData
(_cModels, _pConfig); return _pData; } }}

函数的意义 List(int categoryId, bool cChildren,string model, string userName, int currentPage, int pageSize, int order)用来获取分页公共模型内容列表

参数:categoryId-栏目Id;id-栏目id【id=0全部栏目】;cChildren-是否包含子栏目【id!=0时有效】;userName –用户名【所有用户为空】; page-当前页;pazeSize-每页显示记录数(0- 表示依栏目设置);order排序方式

返回数据类型:分页数据PagerData<CommonModel>

公共模型到此,后面开始写文章功能。

=======================================

去黑龙江了一段时间,真的冷!十几天没刮胡子、没洗澡,不是人过的日子,好在终于弄的差不多了,我王老五又杀回来了!收心、学习!

转载地址:http://spxoa.baihongyu.com/

你可能感兴趣的文章
乐乐茶完成近2亿元Pre-A轮融资,祥峰投资领投
查看>>
clickhouse修改时区
查看>>
CSS_定位
查看>>
第二十四章:页面导航(六)
查看>>
百度、长沙加码自动驾驶,湖南阿波罗智行科技公司成立 ...
查看>>
10 个 Linux 中方便的 Bash 别名
查看>>
全新 DOCKER PALS 计划上线,带给您不一样的参会体验! ...
查看>>
Android开发之自定义View(二)
查看>>
python爬虫之微打赏(scrapy版)
查看>>
自制操作系统Antz day08——实现内核 (中) 扩展内核
查看>>
poj-1056-IMMEDIATE DECODABILITY(字典)
查看>>
阿里云容器Kubernetes监控(二) - 使用Grafana展现Pod监控数据
查看>>
区块链应用 | 不知道什么时候起,满世界都在谈区块链的事情
查看>>
小程序爆红 专家:对简单APP是巨大打击
查看>>
FarBox--另类有趣的网站服务【转】
查看>>
在非纯色背景上,叠加背景透明的BUTTON和STATIC_TEXT控件
查看>>
Distributed2:Linked Server Login 添加和删除
查看>>
Java中取两位小数
查看>>
使用 ftrace 调试 Linux 内核【转】
查看>>
唯一聚集索引上的唯一和非唯一非聚集索引
查看>>