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. 20145320 《Java程序设计》第8周学习总结

    20145320 <Java程序设计>第8周学习总结 教材学习内容总结 15.1日志 java.util.logging包提供了日志功能相关类与接口,不必额外配置日志组件,就可以在标准ja ...

  2. 基于ArcGIS JS API的在线专题地图实现

    0 引言     专题地图是突出而深入的表示一种或几种要素或现象,即按照地图主题的要求,集中表示与主题有关内容的地图.专题地图的专题要素多种多样,分类方法也多种多样,根据专题地图表现数据的特点可分为定 ...

  3. rosetta common sh: mpiCC command not found解决方法

    在执行多线程编译rosetta时执行: python scons.py bin mode=release extras=mpi -j8 编译安装rosetta 会出现错误sh: mpiCC comma ...

  4. 网站和Web应用程序的区别

    新建项目里面的(ASP.NET Web 应用程序)主要是做B/S系统的,与winform的开发方式类似.新建网站(ASP.NET 网站)是主要开发网站的.其实你只要跟着教程做就行了.具体区别如下(借鉴 ...

  5. JDBC的增删改写成一个方法,调用一个工具类

    package com.hx.jdbc.connection; import java.sql.Connection; import java.sql.Statement; import com.my ...

  6. pycharm下载 -professional

    Jet Brains 开发的PyCharm 我传到百度云上了.只供开发使用,违者必究.大家一起学开发.有谁有python 进阶 电子书,可以发到我的邮箱里:120946018@qq.com,谢谢 Ma ...

  7. jq 解析josn字符串

    1. var obj = jQuery.parseJSON("${ruleModel.rules}"); 2. var obj = eval("("+" ...

  8. Bug测试报告--食物链教学工具--奋斗吧兄弟

    组名:奋斗吧兄弟 测试时间:2016-11-23 15:15 测试者:李权(nice!团队) 代码地址:HTTPS: https://git.coding.net/li_yuhuan/FoodChai ...

  9. nodejs框架express快速开始

    认识express 创建应用 get请求 简述中间件 all方法 use方法1 use方法2 回调函数 获取主机.路径名 Get请求 - query Get请求 - param Get请求 - par ...

  10. 使用 highchart 绘制柱状图的通用方法与接口

    本文给出使用 highchart 绘制柱状图的通用方法与接口, 只要指定相应的数据结构和配置, 就可以直接拿来使用. 一.  数据结构与基本接口   一般绘制图形, 会涉及到较复杂的数据结构, 比如使 ...