如何创建MVC5 + EF6
创始人
2024-11-28 19:23:13
0次

本文所使用的软件及环境:

Visual Studio Ultimate 2013;

MVC5 + EF6 + .NET Framework 4.5 + LocalDB;Windows 7 x64 Professional

说明:

1.在EF (Entity Framework,以下简称EF6)框架下,操作数据的方式有三种:Database First, Model First, 以及 Code First,本文基于Code First创建。

2.本文是基于MVC5创建:

3.LocalDB

  • LocalDB是SQL Server Express数据库引擎的轻量级版本,其非常易于安装、配置、以命令行启动并运行在user model.

  • LocalDB以一种SQL Server Express特殊的执行模型运行,从而使得你能够以.mdf文件的方式来操作数据库。如果你想使得数据库具有随项目迁移的能力,你可以把LocalDB数据库文件放在web项目的App_Data文件夹下。

  • 在SQL Server Express中虽然你能够通过使用用户示例功能来达到操作.mdf文件的目的,但是这种做法是不推荐的,相反,LocalDB是被推荐的方式。在Visual Studio2012及随后的版本中,LocalDB随Visual Studio一起默认安装的。

  • 通常来说SQL Server Express并不会被用于Web应用程序的生产环境,同样地,LocalDB由于其并不是针对IIS而设计的也不被推荐使用于生产环境。

一、创建基于MVCWeb Application

  在正式开始之前,先看一下VS 2013的启动界面,是不是有点冷酷的感觉

如何创建MVC5 + EF6

好了,言归正传,首先按如下截图创建

如何创建MVC5 + EF6

如何创建MVC5 + EF6

如何创建MVC5 + EF6

如何创建MVC5 + EF6

创建完成后,我们对网站的风格做些微调,以便能契合应用主题

Views\Shared\_Layout.cshtml做如下更改(请看黄色高亮部分)






@ViewBag.Title - Contact
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")










@Html.ActionLink("Contact", "Index", "Home", null, new { @class = "navbar-brand" })
  • @Html.ActionLink("Home", "Index", "Home")
  • @Html.ActionLink("About", "About", "Home")
  • @Html.ActionLink("Contacts", "Index", "Contact")
  • @Html.ActionLink("Groups", "Index", "Group")
  • @RenderBody()

    © @DateTime.Now.Year - Contact

    @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false) Views\Home\Index.cshtml 替换成如下内容 @{ ViewBag.Title = "Home Page"; }

    Contact

    Welcome to Contact

    Contact is a sample application that demonstrates how to use Entity Framework 6 in an ASP.NET MVC 5 web application.

    Build it from scratch

    You can build the application by following the steps in the tutorial series on the following site.

    See the tutorial »

    运行看一下效果吧

    如何创建MVC5 + EF6

    安装EF6

    如何创建MVC5 + EF6

    如何创建MVC5 + EF6

    创建数据模型

    在Models文件夹下,分别创建Contact.cs、Enrollment.cs、Group.cs三个类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace PCT.Contact.Models
    {
     public class Contact
     {
      public int ID { get; set; }
      public string Name { get; set; }
      public DateTime EnrollmentDate { get; set; }
      public virtual ICollection Enrollments { get; set; }
     }
    }
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace PCT.Contact.Models
    {
     public class Enrollment
     {
      public int EnrollmentID { get; set; }
      public int ContactID { get; set; }
      public int GroupID { get; set; }
      public virtual Contact Contact { get; set; }
      public virtual Group Group { get; set; }
     }
    }
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace PCT.Contact.Models
    {
     public enum GroupName
     {
      Friend, Family, Colleague, Schoolmate, Stranger
     }
    
     public class Group
     {
      public int GroupID { get; set; }
      public GroupName? GroupName { get; set; }
      public virtual ICollection Enrollments { get; set; }
     }
    }

    PS:发现VS 2013有一个自动提示reference,是不是很方便啊

    如何创建MVC5 + EF6

    创建Database Context

      在PCT.Contact项目下新建文件夹DAL(Data Access Layer),继而继续新建CommunicationContext.cs

    如何创建MVC5 + EF6

      悲剧啊,由于类Contact和项目名称Contact重复,不得不写全称啊,以后注意。

      继续在DAL目录下创建CommunicationInitializer.cs

    如何创建MVC5 + EF6

      为了通知EF使用你创建的initializer class,在项目的web.config中添加entityFramework节点

     
     
      
      
      
     
     
     
      
     
     

    在项目web.config中添加connectionstrings(在appSettings之上)

     
     
     
     
     
     
     
     
     
     

      如何创建MVC5 + EF6

    如何创建MVC5 + EF6

    如何创建MVC5 + EF6

    运行结果

    如何创建MVC5 + EF6

    查看LocalDB

    如何创建MVC5 + EF6

    上一篇:如何理解ASP.NET MVC5网站开发项目框架

    下一篇:如何实现asp.net中GridView数据鼠标移入显示提示信息

    相关内容

    热门资讯

    空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
    空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
    格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
    空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
    格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
    品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
    空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
    空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
    中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
    中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...