.NET运用EntityFromWork搭建的一个简单发帖功能案例
Posted In Sec
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET运用EntityFromWork搭建的一个简单发帖功能案例相关的知识,希望对你有一定的参考价值。
数据库设计
创建数据库:ChangeDB:Catelog类型表,Article文章表
数据表
Catelog类型表
字段名 | 类型 | 说明 |
---|---|---|
id | int | 类型ID |
Name | nvarchar(50) | 类型名称 |
Comment | nvarchar(50) | 类型说明 |
Article文章表
字段名 | 类型 | 说明 |
---|---|---|
id | int | 编号 |
Title | nvarchar(50) | 标题 |
Author | nvarchar(50) | 作者 |
time | datetime | 发布时间 |
Content | nvarchar(50) | 内容 |
Catelogid | int | 类型Id(外键Catelog表里的id) |
创建DataModel数据模型层
添加实体数据模型
点击空白右键新增关联
添加关联后DataModel模型层搭建完成
数据访问层DAL
设计两个访问方法类ArticleDAO和CatelogDAO
public class CatelogDAO
/// <summary>
/// 查询所有的类别
/// </summary>
/// <returns></returns>
public List<Catelog> Select()
ChangeDBEntities db = new ChangeDBEntities();
// return db.Catelog.Select(p=>p).ToList();
var result = from catelog in db.Catelog
select catelog;
return result.ToList();
public class ArticleDAO
/// <summary>
/// 查询所有的文章信息
/// </summary>
/// <returns></returns>
public List<Article> Select()
ChangeDBEntities db = new ChangeDBEntities();
return db.Article.Select(a=>a).ToList();
/// <summary>
/// 根据id查找文章
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public Article Select(int id)
ChangeDBEntities db = new ChangeDBEntities();
return db.Article.Where(p=>p.id==id).FirstOrDefault();
/// <summary>
/// 添加文章
/// </summary>
/// <param name="article"></param>
/// <returns></returns>
public int Add(Article article)
ChangeDBEntities db = new ChangeDBEntities();
db.Article.Add(article);
db.Entry<Catelog>(article.Catelog).State = System.Data.Entity.EntityState.Unchanged;
return db.SaveChanges();
业务逻辑层BLL
同样的设计两个逻辑类ArticleService和CatelogService
public class CatelogServcie
private CatelogDAO cdao = new CatelogDAO();
/// <summary>
/// 所有的类别
/// </summary>
/// <returns></returns>
public List<Catelog> Select()
return cdao.Select();
public class ArticleService
private ArticleDAO adao = new ArticleDAO();
public List<Article> Select()
return adao.Select();
public Article Select(int id)
return adao.Select(id);
public int AddArticle(Article article)
if (String.IsNullOrEmpty(article.Title))
throw new Exception("标题不能为空!");
return adao.Add(article);
各层之前的引用关系要梳理好
DAL引用DataModel BLL引用DAL UI表现层引用BLL和DataModel
主页面窗体(表现层)
添加一个WebFrom窗体,命名为Add.aspx
文章类型选择可以使用DropDownList来绑定数据表中的文章类型字段进行保存
样式可以自己选择设计
在窗体事件代码中首先实例化两个业务逻辑类
private CatelogServcie catelogService = new CatelogServcie();
private ArticleService articleService = new ArticleService();
在窗体加载事件中
string message=Request.QueryString["message"];
if(!string.IsNullOrEmpty(message))
this.Label1.Text = message;
if (!IsPostBack)
this.DdlCatelog.DataSource = catelogService.Select();
this.DdlCatelog.DataBind();
Button点击事件中
Article article = new Article();
article.Title = this.TxtTitle.Text;
article.Author = this.TxtAuthor.Text;
article.Content = this.TxtContent.Text;
article.PushTime = DateTime.Now;
//article.Catelogid = int.Parse(this.DdlCatelog.SelectedValue);
article.Catelog = new Catelog() id= int.Parse(this.DdlCatelog.SelectedValue) ;
try
int count = articleService.AddArticle(article);
if (count > 0)
Response.Redirect("~/Add.aspx?message=添加成功!");
catch (Exception ex)
Response.Redirect("~/Add.aspx?message="+ex.Message);
至此这个模拟发帖的简单案例的实现思路就到这了
也许还有更方便更简单的实现方式,但是我这个菜鸡不会hh
以上是关于.NET运用EntityFromWork搭建的一个简单发帖功能案例的主要内容,如果未能解决你的问题,请参考以下文章
.NET运用EntityFromWork搭建的一个简单发帖功能案例