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

字段

名称

类型

必填

默认值

说明

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
{/// <summary>/// 公共模型/// </summary>public class CommonModel{[Key]public int CommonModelId { get; set; }/// <summary>/// 栏目Id/// </summary>[Display(Name="栏目")][Required(ErrorMessage="×")]public int CategoryId { get; set; }/// <summary>/// 录入者/// </summary>[Display(Name="录入者")][Required(ErrorMessage = "×")][StringLength(255, ErrorMessage = "×")]public string Inputer { get; set; }/// <summary>/// 模型名称/// </summary>[Display(Name="模型名称")][Required()][StringLength(50)]public string Model { get; set; }/// <summary>/// 标题/// </summary>[Display(Name="标题")][Required(ErrorMessage = "×")][StringLength(255, ErrorMessage = "×")]public string Title { get; set; }/// <summary>/// 点击/// </summary>[Display(Name = "点击")][Required(ErrorMessage = "×")]public int Hits { get; set; }/// <summary>/// 发布日期/// </summary>[Display(Name = "发布日期")][Required(ErrorMessage = "×")]public DateTime ReleaseDate { get; set; }/// <summary>/// 状态【0-待审核;1-正常】/// </summary>[Display(Name="状态")][Required(ErrorMessage = "×")]public int Status { get; set; }/// <summary>/// 首页图片/// </summary>[Display(Name="首页图片")][StringLength(255, ErrorMessage = "×")]public string PicUrl { get; set; }/// <summary>/// 评论状态/// </summary>[Display(Name="评论状态")][Required(ErrorMessage = "×")]public bool CommentStatus { get; set; }/// <summary>/// 栏目/// </summary>public virtual Category Category { get; set; }public CommonModel(){ReleaseDate = System.DateTime.Now;}[NotMapped]public static List<SelectListItem> ContentOrders{get{List<SelectListItem> _cOrders = new List<SelectListItem>(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<SelectListItem> ContentStatus{get{List<SelectListItem> _cStatus = new List<SelectListItem>(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<CommonModel>{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<CommonModel>(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;}/// <summary>/// 获取分页公共模型内容列表/// </summary>/// <param name="categoryId">栏目Id</param>/// <param name="cChildren">是否包含子栏目</param>/// <param name="model">模型名称</param>/// <param name="userName">用户名</param>/// <param name="currentPage">当前页</param>/// <param name="pageSize">每页记录数</param>/// <param name="order">排序方式</param>/// <returns>分页数据</returns>public PagerData<CommonModel> 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<int> _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<CommonModel> _pData = new PagerData<CommonModel>(_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>

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

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

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

转载于:https://www.cnblogs.com/mzwhj/archive/2013/01/16/2863004.html

学用MVC4做网站四:公共模型相关推荐

  1. 学用MVC4做网站五:5.4删除文章

    前几天把添加.修改功能都做了,今天开始写删除功能.删除文章既要删除文章本身同时也要在公共模型中删除对应项. 首先写从数据库中删除文章的函数.打开ArticleRepository修改Delete的函数 ...

  2. 学用MVC4做网站五:5.1添加文章

    五.文章 在[ArticleController]添加[UserAdd()]action /// <summary>/// 添加文章/// </summary> [UserAu ...

  3. 学用MVC4做网站二:2.2添加用户组

    一.用户 二.用户组 2.1浏览用户组 2.2添加用户组 修改[Add]Action /// <summary>/// 添加用户组/// </summary>/// <r ...

  4. 一步步读懂Pytorch Chatbot Tutorial代码(四) - 为模型准备数据

    文章目录 自述 有用的工具 代码出处 目录 头大 代码及说明 Prepare Data for Models 重点关注 indexesFromSentence zeroPadding binaryMa ...

  5. python与php做网站_学Python对做网站用处大吗?

    Python是一种简单的编程语言,用于网站开发用处当然是非常大的,无可厚非, 相对于Java.C.PHP.C++ 和 VB. Python作为一个很年轻的语言,是相当的优秀.著名的搜索引擎 Googl ...

  6. 数据分析师如何构建数据指标体系?理解以下四个模型就够了!

    点击上方 蓝字 关注我们 我的新书<数据分析之道--用数据思维指导业务实战>正式出版了,本书以数据分析思维为主题,主要介绍对比思维.分群思维以及相关思维三大数据分析思维. 今天的内容节选自 ...

  7. C语言程序的内存四区模型

    C语言程序的内存四区模型 内存四区的建立流程 流程说明 各区元素分析 内存四区的建立流程 流程说明 1.操作系统把物理硬盘代码load到内存 2.操作系统把c代码分成四个区 3.操作系统找到main函 ...

  8. [Python人工智能] 三十四.Bert模型 (3)keras-bert库构建Bert模型实现微博情感分析

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章开启了新的内容--Bert,首先介绍Keras-bert库安装及基础用法及文本分类工作.这篇文章将通过keras- ...

  9. 传热学环肋肋效率matlab程序,传热学 第二章第四节 通过肋片的导热.pdf

    传热学 第二章第四节 通过肋片的导热 第四节 通过肋片的导热 第二章 导热基本定律及稳态导热 传热 学 第一节 导热基本定律 (Heat Transfer ) 第二节 导热微分方程式 (Heat Tr ...

最新文章

  1. 爬虫之常见的验证码的种类
  2. ndbcluster 批量修改表空间_Excel小技巧:使用这招快速保护你的工作表
  3. 传感器融合-数据篇(自动驾驶)
  4. (转载)conflicting types for xx各种错误的总结
  5. html显示后台传来的byte类型的数据_java的数据类型
  6. 字节跳动 java面经_字节跳动Java面经(已offer)
  7. .NET Core实战项目之CMS 第八章 设计篇-内容管理极简设计全过程
  8. STM32“隐藏的定时器”-DWT
  9. 如何在ViewModel中正确地使用Timer(定时器)
  10. 网上Silverlight项目收集
  11. HDU 5183 Negative and Positive (NP) (hashmap+YY)
  12. linux tcp fast open,linux开启tcp fast open/tfo并测试
  13. 完整的vue开发环境搭建教程
  14. 区块链-超级账本Hyperledger-fabric初步认识
  15. 转换成带有toc的html,JavaScript生成TOC
  16. 跨境电商o2o模式的表现形式有哪些?
  17. 时间服务器端口协议,时间服务器端口
  18. JavaScript制作页面倒计时器
  19. kernel printk的打印等级
  20. Tomcat 配置集锦

热门文章

  1. 计算机硬盘有usb借口吗,为什么移动硬盘不建议插在台式机前置USB接口上
  2. gdiplus判断一个点是否在圆弧线上_上挑眼型会更显老吗?杨丞琳和张雨绮示范了2条不同路线...
  3. sql server排序慢_用Nginx实现接口慢查询并可示化展示TOP 20
  4. Angular 运行报错 RouterModule.forRoot() called twice.
  5. 许可证无效_未取得预售许可证所签买房合同是否一概无效?
  6. mysql 当前时间减指定时间_MySQL实现当前数据表的所有时间都增加或减少指定的时间间隔(推荐)...
  7. cpu风扇声音大_笔记本电脑风扇声音大怎么办
  8. q3c 更换q3x 需要重置硬盘吗_轻松拓展你的游戏库 西部数据WD_BLACK D10 游戏专用硬盘评测...
  9. php扩展兼容,PHP扩展迁移为PHP7扩展兼容性问题记录,php7兼容性_PHP教程
  10. Future获取线程返回值能使线程顺序执行?