• ASP.NET MVC5+EF6+EasyUI 后台管理系统(5)-EF增删改查


    系列目录

    前言

    为了符合后面更新后的重构系统,文章于2016-11-1日重写

    回顾上一节的解决方案,我们看出了解决方案中类库的关系

    这里要说明一点MVC!=三层

    他们大约是这样的一种关系

    代码实现

    上一节我们在EF添加了一个实体,这次我们来看看怎么操作这个实体,下面我们创建IDAL,DAL,IBLL,BLL的代码:

    新建一个SysSampleController的控制器:不需要写什么代码,系统自动生成Index方法:分别在各层添加下列代码:

    using System;
    using System.Linq;
    using Apps.IDAL;
    using Apps.Models;
    using System.Data;
    
    namespace Apps.DAL
    {
        public class SysSampleRepository : ISysSampleRepository, IDisposable
        {
            /// <summary>
        /// 获取列表
        ///
    </summary>
            /// <param name="db">数据库上下文</param>
            /// <returns>数据列表</returns>
            public IQueryable<SysSample>GetList(DBContainer db)
            {
                IQueryable<SysSample>
                    list = db.SysSample.AsQueryable();
                return list;
            }
            /// <summary>
                /// 创建一个实体
                ///
            </summary>
            /// <param name="db">数据库上下文</param>
            /// <param name="entity">实体</param>
            public int Create(SysSample entity)
            {
                using (DBContainer db = new DBContainer())
                {
                    db.Set<SysSample>().Add(entity);
                    return db.SaveChanges();
                }
            }
            /// <summary>
                /// 删除一个实体
                ///
            </summary>
            /// <param name="db">数据库上下文</param>
            /// <param name="entity">主键ID</param>
            public int Delete(string id)
            {
                using (DBContainer db = new DBContainer())
                {
                    SysSample entity = db.SysSample.SingleOrDefault(a => a.Id == id);
                    db.Set<SysSample>().Remove(entity);
                    return db.SaveChanges() > 0;
                }
            }
    
            /// <summary>
                /// 修改一个实体
                ///
            </summary>
            /// <param name="db">数据库上下文</param>
            /// <param name="entity">实体</param>
            public int Edit(SysSample entity)
            {
                using (DBContainer db = new DBContainer())
                {
                    db.Set<entity>().Attach(entity);
                    db.Entry<SysSample>(entity).State = EntityState.Modified;
                    return db.SaveChanges();
                }
            }
            /// <summary>
                /// 获得一个实体
                ///
            </summary>
            /// <param name="id">id</param>
            /// <returns>实体</returns>
            public SysSample GetById(string id)
            {
                using (DBContainer db = new DBContainer())
                {
                    return db.SysSample.SingleOrDefault(a => a.Id == id);
                }
            }
            /// <summary>
                /// 判断一个实体是否存在
                ///
            </summary>
            /// <param name="id">id</param>
            /// <returns>是否存在 true or false</returns>
            public bool IsExist(string id)
            {
                using (DBContainer db = new DBContainer())
                {
                    SysSample entity = GetById(id);
                    if (entity != null)
                        return true;
                    return false;
                }
            }
            public void Dispose()
            {
    
            }
        }
    }
    DAL层-SysSampleRepository
    using Apps.Models;
    using System.Linq;
    namespace Apps.IDAL
    {
        public interface ISysSampleRepository
        {
            /// <summary>
            /// 获取列表
            /// </summary>
            /// <param name="db">数据库上下文</param>
            /// <returns>数据列表</returns>
            IQueryable<SysSample> GetList(DBContainer db);
            /// <summary>
            /// 创建一个实体
            /// </summary>
            /// <param name="entity">实体</param>
            int Create(SysSample entity);
            /// <summary>
            /// 删除一个实体
            /// </summary>
            /// <param name="entity">主键ID</param>
            int Delete(string id);
    
            /// <summary>
            /// 修改一个实体
            /// </summary>
            /// <param name="entity">实体</param>
            int Edit(SysSample entity);
            /// <summary>
            /// 获得一个实体
            /// </summary>
            /// <param name="id">id</param>
            /// <returns>实体</returns>
            SysSample GetById(string id);
            /// <summary>
            /// 判断一个实体是否存在
            /// </summary>
            bool IsExist(string id);
        }
    }
    IDAL层-ISysSampleRepository
    using System.Collections.Generic;
    using App.Common;
    using App.Models.Sys;
    
    
    namespace App.IBLL
    {
    
        public interface ISysSampleBLL
        {
            /// <summary>
            /// 获取列表
            /// </summary>
            /// <param name="pager">JQgrid分页</param>
            /// <param name="queryStr">搜索条件</param>
            /// <returns>列表</returns>
            List<SysSampleModel> GetList(ref GridPager pager, string queryStr);
            /// <summary>
            /// 创建一个实体
            /// </summary>
            /// <param name="errors">持久的错误信息</param>
            /// <param name="model">模型</param>
            /// <returns>是否成功</returns>
            bool Create(ref ValidationErrors errors, SysSampleModel model);
            /// <summary>
            /// 删除一个实体
            /// </summary>
            /// <param name="errors">持久的错误信息</param>
            /// <param name="id">id</param>
            /// <returns>是否成功</returns>
            bool Delete(ref ValidationErrors errors, string id);
            /// <summary>
            /// 删除多个实体,中断将回滚
            /// </summary>
            /// <param name="errors">持久的错误信息</param>
            /// <param name="deleteCollection">主键数组集合</param>
            /// <returns>是否成功</returns>
            bool Delete(ref ValidationErrors errors, string[] deleteCollection);
            /// <summary>
            /// 修改一个实体
            /// </summary>
            /// <param name="errors">持久的错误信息</param>
            /// <param name="model">模型</param>
            /// <returns>是否成功</returns>
            bool Edit(ref ValidationErrors errors, SysSampleModel model);
            /// <summary>
            /// 根据ID获得一个Model实体
            /// </summary>
            /// <param name="id">id</param>
            /// <returns>Model实体</returns>
            SysSampleModel GetById(string id);
            /// <summary>
            /// 判断是否存在实体
            /// </summary>
            /// <param name="id">主键ID</param>
            /// <returns>是否存在</returns>
            bool IsExist(string id);
        }
    }
    ISysSampleBLL
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using Apps.Models;
    using Apps.Common;
    using Apps.IBLL;
    using Apps.IDAL;
    using Apps.DAL;
    
    
    namespace Apps.BLL
    {
        public class SysSampleBLL :ISysSampleBLL
        {
            DBContainer db = new DBContainer();
    
            ISysSampleRepository Rep = new SysSampleRepository();
    
            /// <summary>
            /// 获取列表
            /// </summary>
            /// <param name="pager">JQgrid分页</param>
            /// <param name="queryStr">搜索条件</param>
            /// <returns>列表</returns>
            public List<SysSample> GetList(string queryStr)
            {
                
                IQueryable<SysSample> queryData =Rep.GetList(db);
    
    
                return queryData.ToList();
            }
           
            /// <summary>
            /// 创建一个实体
            /// </summary>
            /// <param name="errors">持久的错误信息</param>
            /// <param name="model">模型</param>
            /// <returns>是否成功</returns>
            public bool Create(SysSample entity)
            {
                try
                {
                    if (Rep.Create(entity) == 1)
                    {
                        return true;
                    }
                    else
                    {
                       
                        return false;
                    }
                }
                catch (Exception ex)
                {
                    //ExceptionHander.WriteException(ex);
                    return false;
                }
            }
            /// <summary>
            /// 删除一个实体
            /// </summary>
            /// <param name="errors">持久的错误信息</param>
            /// <param name="id">id</param>
            /// <returns>是否成功</returns>
            public bool Delete(string id)
            {
                try
                {
                    if (Rep.Delete(id) == 1)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                catch (Exception ex)
                {
                    //ExceptionHander.WriteException(ex);
                    return false;
                }
            }
          
            /// <summary>
            /// 修改一个实体
            /// </summary>
            /// <param name="errors">持久的错误信息</param>
            /// <param name="model">模型</param>
            /// <returns>是否成功</returns>
            public bool Edit(SysSample entity)
            {
                try
                {
                    if (Rep.Edit(entity) == 1)
                    {
                        return true;
                    }
                    else
                    {
                        
                        return false;
                    }
    
                }
                catch (Exception ex)
                {
                    
                    //ExceptionHander.WriteException(ex);
                    return false;
                }
            }
            /// <summary>
            /// 判断是否存在实体
            /// </summary>
            /// <param name="id">主键ID</param>
            /// <returns>是否存在</returns>
            public bool IsExists(string id)
            {
                if (db.SysSample.SingleOrDefault(a => a.Id == id) != null)
                {
                    return true;
                }
                return false;
            }
            /// <summary>
            /// 根据ID获得一个实体
            /// </summary>
            /// <param name="id">id</param>
            /// <returns>实体</returns>
            public SysSample GetById(string id)
            {
                if (IsExist(id))
                {
                    SysSample entity = Rep.GetById(id);
    
    
                    return entity;
                }
                else
                {
                    return null;
                }
            }
    
            /// <summary>
            /// 判断一个实体是否存在
            /// </summary>
            /// <param name="id">id</param>
            /// <returns>是否存在 true or false</returns>
            public bool IsExist(string id)
            {
                return Rep.IsExist(id);
            }
        }
    }
    SysSampleBLL
    @model IEnumerable<App.Models.SysSample>
    
    @{
        Layout = null;
    }
    
    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
    </head>
    <body>
        <p>
            @Html.ActionLink("Create New", "Create")
        </p>
        <table>
            <tr>
                <th>
                    @Html.DisplayNameFor(model => model.Name)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.Age)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.Bir)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.Photo)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.Note)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.CreateTime)
                </th>
                <th></th>
            </tr>
        
        @foreach (var item in Model) {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.Name)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Age)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Bir)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Photo)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Note)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.CreateTime)
                </td>
                <td>
                    @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
                    @Html.ActionLink("Details", "Details", new { id=item.Id }) |
                    @Html.ActionLink("Delete", "Delete", new { id=item.Id })
                </td>
            </tr>
        }
        
        </table>
    </body>
    </html>
    Index.cshtml

    我们往数据库插入几条记录这时你应该看到效果了

  • 相关阅读:
    Ajax ToolKit ModelPopupExtender报错:Sys.InvalidOperationException: Handler was not added through the Sys.UI.DomE
    C# 注释 类头部
    matlab练习程序(图像滤波时的边界处理2)
    更改chrome默认搜索引擎
    matlab练习程序(表面模糊)
    matlab练习程序(三阶张量TQR分解)
    linux命令行关机
    matlab练习程序(奇异值分解压缩图像)
    matlab练习程序(方框模糊)
    matlab练习程序(图像滤波时的边界处理)
  • 原文地址:https://www.cnblogs.com/ymnets/p/3426454.html
Copyright © 2020-2023  润新知