zoukankan      html  css  js  c++  java
  • 用EF DataBase First做一个简单的MVC3报名页面

    使用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建好的一个简单数据库如下所示:

    clip_image002

    2、接下来我们将使用Visual Studio 2010来建一个MVC3 Web应用程序

    文件→新建项目→如下图:

    clip_image004

    clip_image006

    项目建立成功之后如下:

    如果不了解MVC3的基本思想,可以参考一下微软官方的一个教程,Music Store

    http://musicstore.codeplex.com

    clip_image007

    3、根据数据库生成实体数据模型edmx,步骤如下:

    clip_image009

    clip_image011

    clip_image013

    clip_image015

    clip_image016

    clip_image018

    点击确定之后就会在VS的解决资源管理器中看到Models文件夹下多了一个实体数据模型

    clip_image020

    4、生成了数据实体之后,EF的代码生成器已经生成了我们所需要的类,但是这些类比较复杂,代码比较多,我们可以使用一个简单的模板来生成一些简单的数据上下文类,如下所示:

    首先在空白处点击右键,点击添加代码生成项:

    clip_image022

    (在VS2010中的模板里没有这个EF 4.x 数据上下文代码生成器,你可以在联机模板里搜索进行安装,安装之后以后就都可以用了)

    clip_image024

    之后会在解决方案资源管理器里看到多了两个类,如下:

    clip_image025

    这两个类中的代码如下:

    clip_image026

    clip_image027

    5、接下来我们就来添加控制器和相应的视图,如下所示:

    clip_image029

    (在给控制器命名的时候,一定要在最后加上Controller,因为在MVC中有一个重要的原则就是约定大于配置,遵守这些约定可以让我们少写很多代码,因为在MVC中约定Home控制器,Index方法是默认的访问路径,我们就把新添加的控制器叫做Home,在Home控制器里添加一个Index方法,之后你还会发现我们从方法中生成的视图也是和我们的控制器和方法的名字是有关系的,控制器的名字是视图文件夹Views下的一个子文件夹,而方法对应着一个视图文件)

    clip_image031

    (要想用刚才生成的类,我们首先就要在代码最前边加上一个using 那些类的命名空间)

    clip_image032

    要在前端代码里使用那些类,要生成一下程序,按F6或者是

    clip_image033

    在Index方法里右键添加视图,添加前端代码,这些前端代码可以是纯的前端代码,也可以是使用HtmlHelper来生成,在MusicStore那个教程里有介绍

    clip_image034

    clip_image035

    在新生成的视图代码里加上一个简单的提交表单,如下:

    clip_image036

    6、运行程序进行测试

    按F5运行程序

    clip_image037

    在表单中输入数据后点击提交,到数据库里刷新之后发现新加进来一条数据

    clip_image038

    上边的例子里很多东西都没有考虑,如果要考虑数据的合法性验证和权限的限制可以参考微软音乐商店的那个例子和《精通ASP.NET MVC3框架》这本书

    下边的这两个链接讲的也很详细,也可以参考一下这两个例子

    参考自:

    http://msdn.microsoft.com/zh-cn/data/gg685489

    http://msdn.microsoft.com/en-us/data/jj206878.aspx

  • 相关阅读:
    计算机网络技术-IOS和VRP 学习笔记
    计算机网络技术-OSI和TCP/IP学习笔记
    软件安装-Typora安装
    python 根据车牌信息,分析出各省的车牌持有量
    python 判断一个三位数是不是水仙花数
    python基础 day7 基础数据类型补充、编码的进一步认识
    浅谈对深浅copy的个人理解(小白的理解,轻喷)
    python基础 day6 id和is、代码块、集合、深浅拷贝
    python基础 day5 字典
    python基础 day4 列表、元组、range
  • 原文地址:https://www.cnblogs.com/conanforever22/p/4019559.html
Copyright © 2011-2022 走看看