C#在MVC模式下对单表项目运行总结的增删改查


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 options, IOwinContext context) 

里面的方法,
然后跳到
 public static ApplicationSignInManager Create(IdentityFactoryOptions options, IOwinContext context)

 

会调用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('_');,在进行遍历删除,也就是批量删除
(其实批量删除是在单个删除的基础上进行操作,如果是单个,直接删除)

 

 

 

你可能感兴趣的:(C#开发)