前言

上一节创建了实体数据库,这次我们来看看怎么操作这个实体

代码实现

新建一个UserInfoController的控制器:不需要写什么代码,系统自动生成Index方法:

创建IDAL,DAL,IBLL,BLL的代码:

using BYCMS.Model;
using System.Linq; namespace BYCMS.IDAL
{
public interface IUserInfoRepository
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="db">数据库上下文</param>
/// <returns>数据列表</returns>
IQueryable<UserInfo> GetList(DBContainer db);
/// <summary>
/// 创建一个实体
/// </summary>
/// <param name="entity">实体</param>
int Create(UserInfo entity);
/// <summary>
/// 删除一个实体
/// </summary>
/// <param name="entity">主键ID</param>
int Delete(int id);
/// <summary>
/// 修改一个实体
/// </summary>
/// <param name="entity">实体</param>
int Edit(UserInfo entity);
/// <summary>
/// 获得一个实体
/// </summary>
/// <param name="id">id</param>
/// <returns>实体</returns>
UserInfo GetById(int id);
/// <summary>
/// 判断一个实体是否存在
/// </summary>
bool IsExist(int id);
}
}

IDAL层-IUserInfoRepository

using BYCMS.IDAL;
using BYCMS.Model;
using System.Data.Entity;
using System.Linq; namespace BYCMS.DAL
{
public class UserInfoRepository : IUserInfoRepository
{
/// <summary>
/// 创建一个实体
/// </summary>
/// <param name="entity">实体</param>
/// <returns></returns>
public int Create(UserInfo entity)
{
using (DBContainer db = new DBContainer())
{
db.Set<UserInfo>().Add(entity);
return db.SaveChanges();
}
}
/// <summary>
/// 删除一个实体
/// </summary>
/// <param name="id">主键ID</param>
/// <returns></returns>
public int Delete(int id)
{
using (DBContainer db = new DBContainer())
{
UserInfo entity = db.UserInfoSet.Find(id);
db.Set<UserInfo>().Remove(entity);
return db.SaveChanges();
}
}
/// <summary>
/// 修改一个实体
/// </summary>
/// <param name="entity">实体</param>
/// <returns></returns>
public int Edit(UserInfo entity)
{
using (DBContainer db = new DBContainer())
{
db.Set<UserInfo>().Attach(entity);
db.Entry(entity).State = EntityState.Modified;
return db.SaveChanges();
}
}
/// <summary>
/// 获得一个实体
/// </summary>
/// <param name="id">主键ID</param>
/// <returns></returns>
public UserInfo GetById(int id)
{
using (DBContainer db = new DBContainer())
{
return db.UserInfoSet.Find(id);
}
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="db"></param>
/// <returns></returns>
public IQueryable<UserInfo> GetList(DBContainer db)
{
IQueryable<UserInfo> list = db.UserInfoSet.AsQueryable();
return list;
}
/// <summary>
/// 判断一个实体是否存在
/// </summary>
/// <param name="id">主键ID</param>
/// <returns></returns>
public bool IsExist(int id)
{
using (DBContainer db = new DBContainer())
{
UserInfo entity = GetById(id);
if (entity != null)
return true;
return false;
}
}
}
}

DAL层-UserInfoRepository

using BYCMS.Model;
using System.Collections.Generic; namespace BYCMS.IBLL
{
public interface IUserInfoBLL
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="pager">JQgrid分页</param>
/// <param name="queryStr">搜索条件</param>
/// <returns>列表</returns>
List<UserInfo> GetList();
/// <summary>
/// 创建一个实体
/// </summary>
/// <param name="errors">持久的错误信息</param>
/// <param name="model">模型</param>
/// <returns>是否成功</returns>
bool Create(UserInfo model);
/// <summary>
/// 删除一个实体
/// </summary>
/// <param name="errors">持久的错误信息</param>
/// <param name="id">id</param>
/// <returns>是否成功</returns>
bool Delete(int id);
/// <summary>
/// 修改一个实体
/// </summary>
/// <param name="errors">持久的错误信息</param>
/// <param name="model">模型</param>
/// <returns>是否成功</returns>
bool Edit(UserInfo model);
/// <summary>
/// 根据ID获得一个Model实体
/// </summary>
/// <param name="id">id</param>
/// <returns>Model实体</returns>
UserInfo GetById(int id);
/// <summary>
/// 判断是否存在实体
/// </summary>
/// <param name="id">主键ID</param>
/// <returns>是否存在</returns>
bool IsExist(int id);
}
}

IBLL层-IUserInfoBLL

using BYCMS.Common;
using BYCMS.DAL;
using BYCMS.IBLL;
using BYCMS.IDAL;
using BYCMS.Model;
using System.Collections.Generic;
using System.Linq; namespace BYCMS.BLL
{
public class UserInfoBLL : IUserInfoBLL
{
DBContainer db = new DBContainer();
IUserInfoRepository rep = new UserInfoRepository(); /// <summary>
/// 创建一个实体
/// </summary>
/// <param name="errors"></param>
/// <param name="model"></param>
/// <returns></returns>
public bool Create(UserInfo model)
{
if (rep.Create(model) == )
{
return true;
}
return false;
}
/// <summary>
/// 根据id删除实体
/// </summary>
/// <param name="errors"></param>
/// <param name="id"></param>
/// <returns></returns>
public bool Delete(int id)
{
if(rep.Delete(id) > )
{
return true;
}
return false;
}
/// <summary>
/// 编辑实体
/// </summary>
/// <param name="errors"></param>
/// <param name="model"></param>
/// <returns></returns>
public bool Edit(UserInfo model)
{
if (rep.Edit(model) > )
{
return true;
}
return false;
}
/// <summary>
/// 根据id查找实体
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public UserInfo GetById(int id)
{
return rep.GetById(id);
}
/// <summary>
/// 实体列表
/// </summary>
/// <param name="pager"></param>
/// <param name="queryStr"></param>
/// <returns></returns>
public List<UserInfo> GetList()
{
IQueryable<UserInfo> queryData = rep.GetList(db);
return queryData.ToList();
}
/// <summary>
/// 判断是否存在实体
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public bool IsExist(int id)
{
return rep.IsExist(id);
}
}
}

BLL层-UserInfoBLL

@{
Layout = null;
} <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>用户中心</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<link rel="stylesheet" href="~/Content/layui/css/layui.css" media="all" />
<link rel="stylesheet" href="~/Content/css/public.css" media="all" />
</head>
<body class="childrenBody">
<blockquote class="layui-elem-quote quoteBox">
<form class="layui-form">
<div class="layui-inline">
<div class="layui-input-inline">
<input type="text" class="layui-input searchVal" placeholder="请输入搜索的内容" />
</div>
<a class="layui-btn search_btn" data-type="reload">搜索</a>
</div>
<div class="layui-inline">
<a class="layui-btn layui-btn-normal addNews_btn">添加用户</a>
</div>
<div class="layui-inline">
<a class="layui-btn layui-btn-danger layui-btn-normal delAll_btn">批量删除</a>
</div>
</form>
</blockquote>
<table id="userList" lay-filter="userList"></table>
<!--操作-->
<script type="text/html" id="userListBar">
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-xs layui-btn-warm" lay-event="usable">已启用</a>
<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del">删除</a>
</script>
<script type="text/javascript" src="~/Content/layui/layui.js"></script>
<script type="text/javascript" src="~/Content/js/user/userList.js"></script>
</body>
</html>

Index.cshtml

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

ASP.NET MVC5+EF6+LayUI实战教程,通用后台管理系统框架(7)- EF增删改查的更多相关文章

  1. ASP.NET MVC5+EF6+LayUI实战教程,通用后台管理系统框架(1)

    文章转自:http://www.xuboyi.com/298.html 前言 网站运营有一段时间了,记录的内容都是杂七杂八的,思前想后,决定给大家分享一套ASP.Net的系列教程.手把手的做一套通用后 ...

  2. ASP.NET MVC5 + EF6 + LayUI实战教程,通用后台管理系统框架(3)

    前言 本节将我们自己的CSS样式替换系统自带的 开始搭建 将脚本文件夹删掉,将内容文件夹里的内容删掉,将我们自己的CSS样式文件,全部复制到内容里边 新建家庭控制器 给家庭控制器添加索引视图 指数代码 ...

  3. ASP.NET MVC5+EF6+LayUI实战教程,通用后台管理系统框架(4)- 漂亮的登录界面

    前言 这一讲,给大家添加登录页面 实现 添加Login的Index视图 @{ Layout = null; } <!DOCTYPE html> <html class="l ...

  4. ASP.NET MVC5+EF6+LayUI实战教程,通用后台管理系统框架(2)

    前言 本节先给大家搭建UI部分,让大家能看到点东西,就好像所有编程书里,开始都是一个Hello World一样 开始搭建 首先建立空白解决方案,我们命名为BYCMS 然后添加新项目BYCMS 我习惯用 ...

  5. ASP.NET MVC5+EF6+LayUI实战教程,通用后台管理系统框架(6)- 创建数据库

    前言 其实网站就是一座连接用户和数据库的梁桥,数据库通过网站,将信息以不同的方式,展现给客户,客户通过网站,对数据库进行各种操作 下面,我们用一个例子,给大家展示下基本的增删改查操作 创建数据库 创建 ...

  6. ASP.NET MVC5+EF6+LayUI实战教程,通用后台管理系统框架(5)- 创建项目结构

    前言 关于理论知识,我的表达能力有限,知识水平有限,就不过多的讲解编程工作中的专用术语了,大家写的代码多了,自然就懂了 前几节课,我们看到了后台的主页面,以及一个自认为比较漂亮的登录界面,算是编程套路 ...

  7. (菜鸟要飞系列)三,基于Asp.Net MVC5的后台管理系统(用户的增删改查功能)

    这些天被项目,考试整昏了头脑,没时间更新,我已经将这一部分全部做完了,现在把代码放上来,大家可以自己研究,有问题可以私聊,这里把图放上来 http://download.csdn.net/detail ...

  8. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码 上一讲我们创建了一系列的解决方案,我们通过一个例子来看看层与层之间的关系 ...

  9. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...

随机推荐

  1. hdu 4941 map的使用

    http://acm.hdu.edu.cn/showproblem.php?pid=4941 给定N,M和K,表示在一个N*M的棋盘上有K个棋子,给出K个棋子的位置和值,然后是Q次操作,对应的是: 1 ...

  2. shell工具-sed

    sed sed是一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这 ...

  3. RPC、RMI、SOAP、WSDL的区别详解

    RPC与RMI的区别============================================================================RPC:(Remote Pr ...

  4. day01_雷神_Python入门

    day01 1.编程语言 主流的像C.java.python.php.C#.等,可以从不同维度分类如下: 机器码和字节码 机器码: C 字节码: 其他 note: 机器码是电脑的CPU可直接解读的数据 ...

  5. Ubuntu 安装Sqldeveloper

    linux下最好用的Oracle开发工具可能就是sqldeveloper了 首先在http://otn.oracle.com/ 上下载最新的Linux - sqldeveloper 我下载的时候版本是 ...

  6. 背水一战 Windows 10 (58) - 控件(集合类): ListViewBase - ListView, GridView

    [源码下载] 背水一战 Windows 10 (58) - 控件(集合类): ListViewBase - ListView, GridView 作者:webabcd 介绍背水一战 Windows 1 ...

  7. Django(命名URL和URL反向解析)

    day67 参考: https://www.cnblogs.com/liwenzhou/articles/8271147.html#autoid-1-4-0 反向解析URL             本 ...

  8. [ActionScript 3.0] 有必要记录一下:flash builder运用Animate CC 发布的swc的一个奇葩问题,亲测

    之前一直用flash cs6 发布swc 配合flash builder4.6开发,最近用Animate CC发布swc,却出现无法flash builder4.6 无法连接到调试器的问题, 经过反复 ...

  9. Python-WSGI协议如何实现?

    简述浏览器通过WSGI 请求动态资源的过程? 发送 http 请求动态资源给 web 服务器 web 服务器收到请求后通过 WSGI 调用一个属性给应用程序框架 应用程序框架通过引用 WSGI 调用 ...

  10. ThinkCMF后台验证码不显示,无法登陆怎么办?

    ThinkCMF5在本地部署之后,过一段时间可能会莫名其妙的出现后台验证码不显示的问题,不明就里.着急登陆后台的话,可以先禁用后台验证码,方法如下: 打开文件:/app/admin/controlle ...