ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 低调看直播体育app软件下载 >> .NETjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 >> 关于Asp.net MVC4 使用EF实现数据库的增删改查

关于Asp.net MVC4 使用EF实现数据库的增删改查

来源:网络整理     时间:2014-11-25     关键词:Asp.net MVC4,Entity Framework

本篇文章主要介绍了"关于Asp.net MVC4 使用EF实现数据库的增删改查",主要涉及到Asp.net MVC4,Entity Framework 方面的内容,对于.NETjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:

关于Asp.net MVC4 使用EF实现数据库的增删改查

ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案
ADO.NET Entity Framework 以 Entity Data Model (EDM) 为主,将数据逻辑层切分为三块,分别为 Conceptual Schema, Mapping Schema 与 Storage Schema 三层,其上还有 Entity Client,Object Context 以及 LINQ 可以使用。

下面我们来看看EF的使用

步骤:

(1)将EF添加到项目:在Model右击添加新建项

找到ADO.NET实体数据模型,接着。。。

(2)实现数据库的增删改查

查询

(因为在Model中已经添加EF实体了,所以就可以在Controller中进行有关的数据库操作)

<>

       //数据上下文对象

        OrderDBEntities db = new OrderDBEntities();

        public ActionResult Index() {

            //使用SQO(标准查询运算符),查询

            //实际返回的是IQueryable 接口的之类对象

            //IQueryable query = db.Customers.Where(d => d.Address == "111");

            //这样转有可能报异常 EnumerableQuery query = (EnumerableQuery)db.Customers.Where(d => d.Address == "111");

            //DbQuery 支持延迟加载,就是只有使用到数据的时候,才去查询数据库

            //DbQuery query = db.Customers.Where(d => d.Address == "111") as DbQuery;

            //List list = query.ToList();

            //也可以这样

            // List list = db.Customers.Where(d => d.Address == "111").ToList();

            //用第二种方式:使用Linq语句,该语法只是给程序员用的,.net编译器会在编译程序集的时候把它转化为SQO

            //IQueryable query = from d in db.Customers where d.Address == "111" select d;

            //List list = (from d in db.Customers where d.Address == "111" select d).ToList();

            List list = (from d in db.Customers select d).ToList();

           //使用ViewData将数据传给View

            ViewData["DataList"] = list;

            return View();

        }

<>

          

    @foreach (Customer a in ViewData["DataList"] as List

    {

       

       

       

       

            修改

    }     

     

@a.Address @a.CustomerName 删除

删除:

<>

public ActionResult Del(string id) //这个id是通过超链接带过来的

        {

            try

            {

                //需要一个实体对象参数

                //db.Customers.Remove(new Customer() {CustomerNo = id });

                //1,创建要删除的对象

                Customer modelDel = new Customer() { CustomerNo = id };

                //2,将对象添加到EF管理容器中

                db.Customers.Attach(modelDel);

                //3,修改对象的包装类对象标识为删除状态

                db.Customers.Remove(modelDel);

                //4,更新到数据库

                db.SaveChanges();

                //5,更新成功,则命令流浪器重定向 到 /Home/Index 方法

                return RedirectToAction("Index", "Home");

            }

            catch (Exception )

            {   

                //指定对应跳转的视图Test下的Test.cshtml文件

               return RedirectToAction("Test", "Test");

               //return Content("删除失败" + ex.Message);

            }

        }

<>

删除哪有什么视图,成功失败页面不给出了

修改

在视图里面肯定又个修改连接,点击跳转到对应的页面,并将参数传递给对应的函数

<>

   

    @foreach (Customer a in ViewData["DataList"] as List

    {

       

       

       

       

            修改

    }     

     

@a.Address @a.CustomerName 删除

//调用到控制器中的modify方法,并以表单的形式显示相应的页面

<>

[HttpGet] //加上这个 只要是超链接发送过来的就调用这个

        public ActionResult Modify(string id)

        {

            Customer art = (from d in db.Customers where d.Address == "111" select d).FirstOrDefault();

            //将数据传递给视图:用ViewBag viewData 使用view的构造函数

            return View(art);

        }

<>

    @using (Html.BeginForm("Modify", "Home", FormMethod.Post)) 

    {

       

           

               

           

               

                @*

*@

               

               

               

       

修改
标题:@Html.HiddenFor(a=>a.CustomerNo) @Html.TextBox("textName",(object)Model.CustomerNo) @Html.TextBoxFor(a =>a.CustomerNo) @Html.TextBoxFor(a =>a.CustomerName) @Html.ActionLink("返回","index","home")

    }

当用户点击修改的时候又将数据以Post方式发送给Home控制器中的Modify函数进行处理

<>

[HttpPost] //表单提交过来的就调用这个方法

        public ActionResult Modify(Customer model)

        {

            try

            {

                //1,将实体对象加入EF对象容器中,并获取伪包装类对象

                DbEntityEntry entry = db.Entry(model);

                //2,将伪包装类对象的状态设置为unchanged

                entry.State = System.Data.EntityState.Unchanged;

                //3,设置被改变的属性

                entry.Property(a => a.CustomerName).IsModified = true;

                //4,提交到数据库 完成修改

                db.SaveChanges();

                return RedirectToAction("Index", "Home");

            }

            catch (Exception)

            {

                return RedirectToAction("Test", "Test");

            }

        }

补充:MVC中页面之间的跳转是通过MapRouter

代码如下

routes.MapRoute(

                name: "Default",

                url: "{controller}/{action}/{id}",

                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

 );

以上就介绍了关于Asp.net MVC4 使用EF实现数据库的增删改查,包括了Asp.net MVC4,Entity Framework 方面的内容,希望对.NETjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_95298.html

上一篇使用C#制作 CGI程序 下一篇asp.net中使用ajaxfileupload.js 实现异步上传文件

相关图片

相关文章