博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC5 + EF6 简单示例
阅读量:7055 次
发布时间:2019-06-28

本文共 4257 字,大约阅读时间需要 14 分钟。

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

  • 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创建。更多关于EF6请参考 ;
  2. 本文是基于MVC5创建,更多关于其说明与使用请参考 ;
  3. LocalDB:
    • LocalDBSQL Server Express数据库引擎的轻量级版本,其非常易于安装、配置、以命令行启动并运行在user model.
    • LocalDB以一种SQL Server Express特殊的执行模型运行,从而使得你能够以.mdf文件的方式来操作数据库。如果你想使得数据库具有随项目迁移的能力,你可以把LocalDB数据库文件放在web项目的App_Data文件夹下。
    • SQL Server Express中虽然你能够通过使用用户示例功能来达到操作.mdf文件的目的,但是这种做法是不推荐的,相反,LocalDB是被推荐的方式。在Visual Studio 2012及随后的版本中,LocalDBVisual Studio一起默认安装的。
    • 通常来说SQL Server Express并不会被用于Web应用程序的生产环境,同样地,LocalDB由于其并不是针对IIS而设计的也不被推荐使用于生产环境。

 

一、创建基于MVC Web Application

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

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

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

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

    
@ViewBag.Title - Contact @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr")
@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 »

  运行看一下效果吧

安装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,是不是很方便啊

创建Database Context

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

 

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

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

 

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

设置EF使用SQL Server Express LocalDB database

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

创建Contact的控制器和视图

  

运行结果

查看LocalDB

你可能感兴趣的文章
日志服务Python消费组实战(三):实时跨域监测多日志库数据 ...
查看>>
网站被黑跳转到其他网站的解决办法
查看>>
填报脚本之轻松搞定复杂表的数据入库
查看>>
HttpClient在多线程环境下踩坑总结
查看>>
接入高防后为什么有一些网站,APP等会出现延迟,打开速度慢等问题? ...
查看>>
Vue-cli3 简qian易yi教程
查看>>
Linux服务器---DansGuardian
查看>>
Intel处理器供应紧张最晚4季度缓解,俄勒冈州新工厂6月底前开建 ...
查看>>
Confluence 6 计划你的升级
查看>>
网站常见问题1分钟定位 - 如何使用阿里云ARMS轻松重现用户浏览器问题 ...
查看>>
【机器学习PAI实战】—— 玩转人工智能之综述
查看>>
基于HBase和Spark构建企业级数据处理平台
查看>>
MyBatis的配置方式
查看>>
5分钟,关于Python 解包,你需要知道的一切
查看>>
实验吧--隐写术
查看>>
NLP领域中更有效的迁移学习方法
查看>>
【全面解禁!真正的Expression Blend实战开发技巧】第六章 认识ListBox
查看>>
蜗牛爬行日记——记Python语法基础与C语言的异同(二)
查看>>
云栖大会首设“科技脱贫”专场 ,20张会场门票等你来拿!
查看>>
Redis字符串类型内部编码剖析
查看>>