mvc如今火的不行,我今天就来介绍一个MVC5与EF6开发的实际的入门实例,因为EF6默认是Code First的,所以我今天也就用EF6 的Code First来做一个简单的实例,为了让实例显得简单,这里面就用一个表,用来展示一个表的记录,model和dal也都在一个项目中。下面是详细步骤:

1、创建一个mvc的项目

打开VS2013新建项目一个Web项目,框架选.NET Framewok4.5,项目名字为MiniProfilerDemo。如下图:

接下来在弹出的窗口中选择项目的模板为mvc,如下图:

2、添加安装EF框架依赖包到项目

选中刚才建的项目,右键弹出以下菜单:

点击“管理nuget程序包”在下面的界面点击“安装”EntityFramework 6.1

安装成功之后,会自动添加相关的dll引用到项目中。

3、添加一个Model

选中项目中的Models文件夹,添加一个Product类:
  1. namespace MiniProfilerDemo.Models
  2. {
  3. public class Product
  4. {
  5. public int ID { get; set; }
  6. public string Name { get; set; }
  7. public decimal Price { get; set; }
  8. public int Quantity { get; set; }
  9. }
  10. }

4、添加一个EF的上下文类

为项目添加一个EF的上下文类,用来做为访问数据库的公共类:

  1. using MiniProfilerDemo.Models;
  2. using System.Data.Entity;
  3. namespace MiniProfilerDemo.DAL
  4. {
  5. public class EFDbContext:DbContext
  6. {
  7. public DbSet<Product> Products { get; set; }
  8. }
  9. }

在Web.config中加入一个数据库链接:

  1. <connectionStrings>
  2. <add name="EFDbContext" connectionString="Server=.;Database=MiniProfilerDemo;uid=sa;pwd=sa;" providerName="System.Data.SqlClient" />
  3. </connectionStrings>

注意:上面的数据库链接字符串你要根据的自己的数据库来做相应的调整,这个数据库链接的结点名字为“EFDbContext”和上面建的EF的上下文类名字一样。在EF上下文类中没有指定结点名称、默认就是类名称与数据库链接配置结点名同名,当然你在实践中也可以不一样,但是这样你的EF的上下文类就要多加一个构造函数:

  1. public EFDbContext(): base("数据库链接的结点名字")
  2. {
  3. }

5、创建一个展示Model类的Controller和视图

1、选中项目的Controller文件夹,添加一个名字为Product的Controller
  1. using MiniProfilerDemo.DAL;
  2. using System.linq;
  3. using System.Web.Mvc;
  4. namespace MiniProfilerDemo.Controllers
  5. {
  6. public class ProductController : Controller
  7. {
  8. public ActionResult Index()
  9. {
  10. using (EFDbContext db=new EFDbContext())
  11. {
  12. var m = db.Products.ToList();
  13. return View(m);
  14. }
  15. }
  16. }
  17. }

2、把光标移动到上面的Action为Index方法的内,右键弹出菜单点击“添加视图”,在里面输入下面的内容:

  1. @model List<MiniProfilerDemo.Models.Product>
  2. @{
  3. ViewBag.Title = "ProductList";
  4. }
  5. <h2>ProductList</h2>
  6. <table class="table">
  7. <thead>
  8. <tr>
  9. <th>ID</th>
  10. <th>Name</th>
  11. <th>Price</th>
  12. <th>Quantity</th>
  13. </tr>
  14. </thead>
  15. <tbody>
  16. @foreach (var item in Model)
  17. {
  18. <tr>
  19. <td>@item.ID</td>
  20. <td>@item.Name</td>
  21. <td>@item.Price</td>
  22. <td>@item.Quantity</td>
  23. </tr>
  24. }
  25. </tbody>
  26. </table>

这个视图的绑定的model类型为强类型List<MiniProfilerDemo.Models.Product>,数据记录用了一个表格展示。

6、查看页面,运行结果

第一次运行页面,是没有数据,这是正常的,因为刚开始连数据库都还没有,运行的时候EF会根据之前配置的数据库链接和EF上下文,自动创建一个数据库和Model对应的表,如下图:

下面我们手动打开表Product,添加一些记录进去

再次刷新页面就有刚才添加的数据了,如下图:

MVC5与EF6 Code First 第一个入门完整实例教程的更多相关文章

  1. MVC5中EF6 Code First启动慢及间隙变慢优化的实践经验(转)

    最近项目在使用EF了,mvc使用EF确实方便,因为添加功能的时候可以使用vs自动生成用ef的增.删.查.改的模板,大的提高的工作效率.但是很多人都遇到过用EF开发的程序在第一次访问的时候会比用ADO纯 ...

  2. MVC5中EF6 Code First启动慢及间隙变慢的一些优化处理

    问题描述: 第一次访问的时候很慢,后面再次打开页面很快,过了一段时间不访问页面然后再次打开页面又像第一次那样很慢. 采用的技术和环境: 使用技术:EF6+MVC5 服务器环境:Windows 2012 ...

  3. ASP.NET MVC5 高级编程-学习日记-第一章 入门

    1.1 ASP.NET MVC 简介 ASP.NET是一种构建Web应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET框架. 1.1.1 MVC模式 ...

  4. MVC5使用EF6 Code First--创建EF数据模型(一)

    此Web应用程序演示如何使用Entity Framework 6和Visual Studio 2015创建ASP.NET MVC 5应用程序.本教程使用“Code First ”即代码先行.有关如何在 ...

  5. 3.MVC基础-Code First 入门完整实例

    1.添加一个EF的上下文类  EFDbContext public class EFDbContext:DbContext { public EFDbContext() : base("EF ...

  6. WCF 入门调用实例教程

    WCF的相关概念信息就不在此赘述了,网上一搜一大把. 现在让我们动手搭建我们的第一个wcf程序吧,具体流程如下: 1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序. 2 ...

  7. MiniProfiler(MiniProfiler.EF6监控调试MVC5和EF6的性能)

    git:  https://github.com/MiniProfiler 以前开发Webform的时候可以开启trace来跟踪页面事件,这对于诊断程序的性能是有很大的帮助的,起到事半功倍的作用,今天 ...

  8. MiniProfiler.EF6监控调试MVC5和EF6的性能

    转自:蓝狐学MVC教程 以前开发Webform的时候可以开启trace来跟踪页面事件,这对于诊断程序的性能是有很大的帮助的,起到事半功倍的作用,今天我就来谈用mvc开 发项目的调试和性能监控.EF框架 ...

  9. MVC5+EF6 入门完整教程九

    前一阵子临时有事,这篇文章发布间隔比较长,我们先回顾下之前的内容,每篇文章用一句话总结重点. 文章一 MVC核心概念简介,一个基本MVC项目结构 文章二 通过开发一个最基本的登录界面,介绍了如何从Co ...

随机推荐

  1. BJFU 1057

    描述 斐波那契额数列,我们都知道.现在qingyezhu想求斐波那契的某项值对2的某次方的结果.你可以帮一下他吗?他好可怜哦!计算了N的N次方次都错了,也挨了ben大哥的N的N次方次的训了.我想你是个 ...

  2. 函数nvl 和decode

    decode(nvl(kkc.category, 'one'),'one','普通','two','精品','three','行业','four','白金')

  3. 《zw版·Halcon-delphi系列原创教程》 酸奶自动分类脚本(机器学习、人工智能)

    <zw版·Halcon-delphi系列原创教程>酸奶自动分类脚本(机器学习.人工智能) Halcon强大的图像处理能力,令人往往会忽视其内核,是更加彪悍的机器学习.人工智能.       ...

  4. Redis的简介与安装

    1.简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted ...

  5. JQuery EasyUI的datagrid的使用方式总结

    JQuery EasyUI的datagrid的使用方式总结第一步:添加样式和js脚本在前台添加展示数据表格的table元素 例如: <div> <table id="tt& ...

  6. Java堆栈的应用2----------中缀表达式转为后缀表达式的计算Java实现

    1.堆栈-Stack 堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除 ...

  7. jQuery右键菜单contextMenu使用实例

    在最近项目中需要频繁的右键菜单操作.我采用了contextMenu这款jQuery插件. 参考网址:http://www.jb51.net/article/58709.htm 官网demo http: ...

  8. 原创开源项目HierarchyViewer for iOS 2.1 Beta新功能介绍

    回顾 HierarchyViewer for iOS是我们发布的一个开源项目,采用GPL v3.0协议. HierarchyViewer for iOS可以帮助iOS应用的开发和测试人员,在没有源代码 ...

  9. Java Code Examples for PhantomJSDriverService

    Example 1 Project: thucydides   File: PhantomJSCapabilityEnhancer.java View source code Vote up 6 vo ...

  10. [四校联考P3] 区间颜色众数 (主席树)

    主席树 Description 给定一个长度为 N 颜色序列A,有M个询问:每次询问一个区间里是否有一种颜色的数量超过了区间的一半,并指出是哪种颜色. Input 输入文件第一行有两个整数:N和C 输 ...