java mvc ef_一个简单MVC5 + EF6示例分享

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

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一起默认安装的。

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

一、创建基于MVCWeb Application

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

eb47956cd7fd88d67bfea69caefb1af4.png

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

c5bd1a767011c195b482dda3c7989f22.png

db42d9e7ff2181a0026519493c659dd3.png

eb45073af9e3208083b9cafb877f1848.png

1b7f850a27ebd3e83705e8acee3bc635.png

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

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 »

运行看一下效果吧

25eb48144096316432a6b400c798f8a0.png

安装EF6

4e2f5a17dd3747cb807f15d0af0fedd2.png

94673b51aa31f10fded2434ec95d5997.png

创建数据模型

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

2623dc108e2637cbaebd1a6d10861b23.png

创建Database Context

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

6b1a68cb94e504da7e1ec2f868c2b6dc.png

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

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

4121aa8d76ed6f4d60ec4db6c7bc5a27.png

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

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

0f24f011032dcd5fefd5df8539085752.png

6586ba1aa495cbd3ff277359b5c62c0f.png

27e154fcab5323b77fa7e22ed118661e.png

运行结果

47dc8bc1b00d18ad20e16ca722d45664.png

查看LocalDB

2019cc82d004a43fed99628bd0d5b46d.png

希望本文可以对大家学习有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值