zoukankan      html  css  js  c++  java
  • MVC5与EF6 Code First 第一个入门完整实例教程

    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,添加一些记录进去

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

  • 相关阅读:
    Android应用开发1(应用程序框架)
    使用LogParser分析网站运行情况(比较简单)
    实现支持会话的WebClient
    放大招,解决前同事签出TFS文件的问题
    Python几行代码打印出网卡的Mac地址
    飞猪传书
    QQ斗地主记牌器(只支持角色版)
    咱也搞一个TransactionScope
    自定义WinForm 下ListBox的行高
    Linq To xml 查询时需要注意的一点。
  • 原文地址:https://www.cnblogs.com/kevin2013/p/5239015.html
Copyright © 2011-2022 走看看