MVC新手教程三:Entity Framework 4.0 来实现MVC的增删改查功能,10分钟搞定
在这一节,我们使用VS2010自带的EF4.0来实现MVC的增删查改功能,为什么用EF呢?因为如果你自己手写sqlhelper之类,或者是用动软,和我们用EF的速度比,太慢太慢··· 当然,新手还是用sqlhelper写代码好一些,等你熟练了ado.net就不用sqlhelper,可以用用动软之类的,帮你免掉繁琐的增删改查,更灵活一些,则可以使用 EF和NH之类的ORM框架了···废话完毕
第一部分:创建 ADO.NET实体数据模型,创建数据库和表
新建一个空的MVC2空项目,然后在Model层添加一个EF模型,选择空模型
在出来的edmx模型里面的空白地方,我们右键创建实体,也就是以后数据库对应的一个表
继续添加 2个标量属性 (在edmx模型里面,我们把表的列叫做 标量属性,把表的外键叫做 导航属性)
然后选中空白地方,选择 根据模型生成数据库
接下来就是VS根据你刚才生成的EF模型来去数据库建表了
此时只是生成了sql 的代码,数据的表还没有建立,我们在sql上 点击执行
OK 数据库搞定,我们去数据库看看,库和表 都OK了。我们手动插入几条数据,以便后面测试
第二部分:在MVC中使用EF来实现增删改查。
1:首先还是创建一个控制器,有了控制器,我们才能在网址里面访问不是?
来一个 Admin控制器,勾选 为 Create,Update,Delete和Details方案··
这样,系统就默认帮我们创建了 增删改查的 Action。很智能吧?什么?太智能?想自己手写?···无语··那你用vb语言的asp去,那个什么都手写···爽死你·· 作为一个从asp转为asp.net的程序员,你再和我讲要自己手写,我去拿刀···
我们分析一下上面自动生成的几个Action 由于截图的大小问题,上面只列出来了 部分几个而已,简单的说,就是帮你把常用的增删改查这4种方式对应的Action都自动生成了
2: 实现 Index 列表
下面我们一个一个来实现,其实感觉就是在贴截图,贴代码了,改天我录个视频教程吧,有兴趣的朋友可以跟着看看详细的操作步骤
首先我们解决Index这个Action ,既然我们是要在视图上显示的,而Action是用来给视图传值的,那么我们首先搞定Action里面的数据。之前我是用List来模拟了一下,这次我们用EF来直接返回数据库里面的数据。 先去找一下EF这个上下文
这个EF上下文就相当于是数据库的总管,从里面可以拿到所有的东西,下面3行,就是获得 Admin表的所有数据,只要3行···
有了数据,然后我们还要找个前台视图来实现吧?开工,在Index里面的 View上右键添加视图,选择强类型,选择我们在EF里面的表实体 Admin,如果这里什么都没有,我们需要先生成一下项目,因为这里是根据项目的程序集反射出来的,所以要先生成项目
然后我们再次生成一下项目,看看 http://XX/Admin/index 数据就出来了吧
接下来,我们看看这个index视图,里面有些什么
我写到这里的时候,发现感觉用截图的方式写这个教程,会很累,大家看的也很累,我截图写的也很累···就如同我以前从asp转asp.net一样,如果连最基本的三层架构怎么在VS里面搭配都不会的话,怎么能开始写.net代码?如果连基本的MVC操作都不会,只靠截图,我觉得很难学会,还是去看视频教程吧。有兴趣的朋友可以加入视频群 217087477
3:实现Create 添加操作
生成项目,查看 http://xx/Admin/Create
这里如果我们点击页面的Create,他会提交到一个对应的Action,默认如果你在视图里面没有写表单的Action的话,他会提交到自己
那么这个页面提交到的Action(注意在mvc里面所有的操作都是对应控制器下的Action而不再是asp.net那样的页面)是自己本身,那么我们在Action里面怎么接收到值呢?我们去看Admin控制器
我们修改一下 Create 这个 action,保存一下前台视图提交的值 也只要3行代码就OK了 用EF 很爽··
我们试试,生成项目,去刚才的添加页面,添加数据试试,打个断点,看看传过来的数据,请记得,我们在EF实体中是设置过ID为主键的,那么他实际是自增的,那么我们传递过来的ID有没有用呢?
我们提交,可以看到ID的值111确实提交过去了,但是数据库会保存么?
4:实现 Edit 编辑页面,要注意,这个Action也是有2个的,为嘛呢?一个是get方式用于显示的,一个是Post再次修改提交的
先写Get方式的Action代码的,也就3行搞定
然后我们创建对应的前台View视图
重新生成项目,我们去前台看看 http://localhost:2180/admin 先进入列表,然后我们看看能否点修改
显示是OK的,但是ID我们是不希望给别人修改的,怎么来弄呢?我们修改前台的视图,把ID的显示删掉
另外我们先把Post方式的 保存的Action给完成
这样修改保存 也就OK了
5:最后实现 Delete 删除。系统自动创建的删除比较傻,他是先展示了数据,然后再删除,我们这里演示的时候还是按照系统创建的来删除(实际项目中,前台给一个js的confirm提示,用MVC的ajax提交到对应的Action删除完事)
其实这2个用的是一个视图,我们添加一下
然后我们还是从列表页查看页面,点击删除试试
在删除的时候,我们打个断点看看
实际传过来的实体也好,参数Id也好,他们的值都是相同的,而且实体里面其他的值都是null,这是因为这里是删除操作,其他的要不要无所谓
6:最后一个 Details 详细页显示
我们显示看看
OK 第三节 在MVC使用EF进行增删改查完毕 另外如果有人看截图太累看不懂 欢迎进 .net视频群 217087477