C#在MVC模式下对单表进行的增删改查
1,首先创建一个新项目WebApplication1
2, 接着创建实体类product, 然后通过EF Code First创建数据库初始数据。派生出DbContext的EF上下文。masterEntities对db文件的实现 masterEntities : DbContext
以后获取数据源直接通过masterEntities
3,在Web.config中 < add name= "aaa" 和Models包下masterEntities进行名称一致配对 =》 public masterEntities() : base("aaa"),都是aaa
4,Web.config中的数据库AttachDbFilename =|DataDirectory |\dbConnection.mdf也就是以mdf结尾的,要和数据库名称一致
5, 这一步开始创建接口,IProductRepository接口,通过ProductRepository进行实现拓展IProductRepository接口,
在 ProductRepository里面有GetProdutJson根据查询参数获取所有产品,
AddProduct根据界面信息进行添加操作
EditProduct获取到界面修改后的信息进行修改操作
DeleteProducts根据界面传过来的id进行删除操作
6,创建控制层ProductController,用于与页面进行交互,把数值传给ProductRepository里面进行实现代码对应的功能操作
=========================================
项目启动,
先调用identityConfig.cs文件中的
public static ApplicationUserManager Create(IdentityFactoryOptions
里面的方法,
然后跳到
public static ApplicationSignInManager Create(IdentityFactoryOptions
会调用HomeController里面的 return View();,直接加载试图页面
就是_ViewStart页面,执行@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
语句,加载也就是view下面的index页面。
读取页面信息,加载js,跳转到后台的GetProdutJson方法里面获取信息
通过数据源,进行连接
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
通过请求,获取里面对应的属性参数,
//根据查询实例查找对应的数据
LoadProductPageData方法进行调用封装
=======================================================
查询结果集
页面加载后,同时也加载了css和js,首先加载 initData();函数进行页面显示
然后执行里面的语句,跳到后台对应的方法里面,进行查询操作。
通过查询实例获取数据库里面的数据
通过 products = products.Where(p => p.Category.Contains(para.Category));语句进行查询
集合,封装成结果集result,然后以Json形式返回,easyUI里面直接解析把数据展示出来
添加
通过页面的添加按钮,进行对应的添加页面,根据界面获取到的值,以post的形式传给后台对应的AddProduct方法里面,
通过获取界面的属性直接赋给对象对应的属性,然后通过数据源进行添加操作。返回提示
修改
通过界面的修改按钮,勾选要进行修改的数据,
把id传给后台public ActionResult EditProduct(int id),
后台就会根据勾选的id查询整条数据 var dbProduct = repository.GetById(id);,
赋给一个对象,然后在修改页面展示出来,当对要修改的信息修改完后,进行提交,
转到后台public ActionResult EditProduct(ProductVm productVm)方法里面,
通过一致的id,把页面传过来的值赋给对象,在进行更新操作,返回提示
删除操作
在js代码中通过$.post("@Url.Action("DeleteProducts", "Product")"进行传递,把需要删除的id拼成字符串,
传到后台DeleteProducts方法里面
后台把id转为数组 string[] ids = strIds.Split('_');,在进行遍历删除,也就是批量删除
(其实批量删除是在单个删除的基础上进行操作,如果是单个,直接删除)