使用EF DataBase First做一个简单的MVC3报名网站
ORM(Object Relational Mapping)是面向对象语言中的一种数据访问技术,在ASP.NET中,可以通过ADO.NET Entity Framework技术来简化数据访问。在EF里,有Code First,Model First和DataBase First三种方法来实现。
百度百科关于ORM的介绍:
http://baike.baidu.com/view/197951.htm?fr=aladdin
1、就像EF DataBase First名字所表示的意义,我们首先需要把我们需要传输数据的数据库建好,后边就要通过这个数据库来生成我们在MVC程序中所需要的实体类。我使用SQL Server 2008建好的一个简单数据库如下所示:
2、接下来我们将使用Visual Studio 2010来建一个MVC3 Web应用程序
文件→新建项目→如下图:
项目建立成功之后如下:
如果不了解MVC3的基本思想,可以参考一下微软官方的一个教程,Music Store
http://musicstore.codeplex.com
3、根据数据库生成实体数据模型edmx,步骤如下:
点击确定之后就会在VS的解决资源管理器中看到Models文件夹下多了一个实体数据模型
4、生成了数据实体之后,EF的代码生成器已经生成了我们所需要的类,但是这些类比较复杂,代码比较多,我们可以使用一个简单的模板来生成一些简单的数据上下文类,如下所示:
首先在空白处点击右键,点击添加代码生成项:
(在VS2010中的模板里没有这个EF 4.x 数据上下文代码生成器,你可以在联机模板里搜索进行安装,安装之后以后就都可以用了)
之后会在解决方案资源管理器里看到多了两个类,如下:
这两个类中的代码如下:
5、接下来我们就来添加控制器和相应的视图,如下所示:
(在给控制器命名的时候,一定要在最后加上Controller,因为在MVC中有一个重要的原则就是约定大于配置,遵守这些约定可以让我们少写很多代码,因为在MVC中约定Home控制器,Index方法是默认的访问路径,我们就把新添加的控制器叫做Home,在Home控制器里添加一个Index方法,之后你还会发现我们从方法中生成的视图也是和我们的控制器和方法的名字是有关系的,控制器的名字是视图文件夹Views下的一个子文件夹,而方法对应着一个视图文件)
(要想用刚才生成的类,我们首先就要在代码最前边加上一个using 那些类的命名空间)
要在前端代码里使用那些类,要生成一下程序,按F6或者是
在Index方法里右键添加视图,添加前端代码,这些前端代码可以是纯的前端代码,也可以是使用HtmlHelper来生成,在MusicStore那个教程里有介绍
在新生成的视图代码里加上一个简单的提交表单,如下:
6、运行程序进行测试
按F5运行程序
在表单中输入数据后点击提交,到数据库里刷新之后发现新加进来一条数据
上边的例子里很多东西都没有考虑,如果要考虑数据的合法性验证和权限的限制可以参考微软音乐商店的那个例子和《精通ASP.NET MVC3框架》这本书
下边的这两个链接讲的也很详细,也可以参考一下这两个例子
参考自:
http://msdn.microsoft.com/zh-cn/data/gg685489
http://msdn.microsoft.com/en-us/data/jj206878.aspx