.NET运用EntityFromWork搭建的一个简单发帖功能案例

Posted In Sec

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET运用EntityFromWork搭建的一个简单发帖功能案例相关的知识,希望对你有一定的参考价值。

数据库设计

创建数据库:ChangeDB:Catelog类型表,Article文章表

数据表

Catelog类型表

字段名类型说明
idint类型ID
Namenvarchar(50)类型名称
Commentnvarchar(50)类型说明

Article文章表

字段名类型说明
idint编号
Titlenvarchar(50)标题
Authornvarchar(50)作者
timedatetime发布时间
Contentnvarchar(50)内容
Catelogidint类型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搭建的一个简单发帖功能案例

.NET运用EntityFromWork搭建的一个简单发帖功能案例

如何运用个人服务器搭建个人空间

SaltStck 搭建Web集群运用示例

运用BT在centos下搭建一个博客论坛

ASP.NET Web窗体(.NETFromWork应用程序) ADO.NET 实体数据模型 关于多表联查显示的实现