一直都有接触asp.net mvc,希望自己借此次机会把Blog搭起来的同时能够更深入地学习相关知识。

①新建

  打开VS2012,新建ASP.Net MVC 4项目,接着选择“空”模板(因为不想用自带的一些模板,所以选择了“空”模板,如果想“基本”,则会默认帮我们添加一些基本的页面和代码)

Entity Framework

  既然用到了MVC,自然少不了Entity Framework。使用EF时,我们可以采用三种方式: Database FirstModel First, and Code First

  这里只说Code First(代码优先,戳这里) 。

  因为我在①中选用了空模板,所以必须自己手动安装EF包——其实就是EF的相关dll引用。关于如何在MVC里使用EF,可以戳这里了解得更多。在PM控制台输入以下命令并回车确定:

 install-package EntityFramework

③创建DataContext

  首先,在Models目录下创建实体类。这些实体类最终将会和数据库里表一一对应。关于Entity Framework Code First关系映射约定的文章,可以参考博客园里Libing的这篇文章

  接着,新建一个DAL目录,在目录里添加一个继承自DbContext的class,并在class里定义各个Models下面的DbSet变量。如下图所示:

  最后,配置数据库服务器。官方Demo文档里指出,我们可以不显式在web.config里配置数据库连接字符串,让EF自动帮我们创建一个,但这种方式创建出来的数据库mdf文件很大可能不是在项目的App_data目录的。所以,我们还是不偷这个懒。数据库配置如下(名称默认用前面DbContext子类的名称,MyDataContext)

 <connectionStrings>
<add name="MyDataContext" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=IvanByDB;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\IvanByDB.mdf" />
</connectionStrings>

  这里,如果万一我已经有一个重名的数据库连接呢?或者,到正式部署时需要修改数据库连接名称呢?别担心,可以重写DbContext的构造函数,用代码传递一个连接参数给DbContext,如下图所示:

④启动迁移功能

  输入以下PM命令并回车确定:

 enable-migrations -contexttypename  MyDataContext

  VS将自动添加一个Migrations目录和一个Configuration.cs文件

  注:如果DataContext类不在Web项目里,输入以上命令时会提示:The context type 'MyDataContext' was not found in the assembly 'xxx.Web'。针对此种情况,可以手工添加Migrations目录和一个Configuration.cs文件,或者先把DataContext类复制到Web项目,enable-migrations 完成之后再移到原来的项目工程里。

⑤创建数据库

  增加迁移,输入以下PM命令并回车确定:

add-migration InitialCreate

  应用迁移,输入以下PM命令并回车确定:

update-database

⑥查看数据库表

  到此,基本的工作完成了,在项目的App_Data目录下将生成两个数据库文件,可以使用SQL Server或者VS自带的SQL Server Express 打开数据库文件查看相应的表了。

备注:查询PM相关帮助命令

Get-Help nuget

MVC & Entity Framework(1)- 开发环境的更多相关文章

  1. 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序

    使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...

  2. ASP.NET MVC+EasyUI+Entity FrameWork 整合开发

    本文详细讲解怎么用ASP.NET MVC+EasyUI+Entity FrameWork 来开发一个项目 对于ASP.NET MVC的Jscript库,主要引用 <script type=.mi ...

  3. MVC & Entity Framework(2)- controller、Models单独DLL

    继上一篇MVC & Entity Framework(1)- 开发环境之后,已经很久没更新了.接下来记录一下怎么把MVC中的controller单独拆为一个类库,然后在web项目中引用.另外, ...

  4. ASP.NET MVC - Entity Framework

    ASP.NET MVC - Entity Framework 实体关系 关系是某个实体(表)的一条记录对应于另一个实体(表)的一条或多条记录. 一对多关系 单方面的包含关系称为一对多,而一对多和一对一 ...

  5. Entity Framework 6 开发系列 目录

    2014 年开始接触 Entity Framework 6 也快两年,用它已经沉淀了一个成熟架构,也用来开发了不少大大小小的产品和项目,直到这段时间,才真正有时间来回顾,重新学习它,为让大家更加了解E ...

  6. 使用ASP.NET MVC+Entity Framework快速搭建系统

    详细资料: http://www.cnblogs.com/dingfangbo/p/5771741.html 学习 ASP.NET MVC 也有一段时间了,打算弄个小程序练练手,做为学习过程中的记录和 ...

  7. Asp.net Mvc Entity Framework Code First 数据库迁移

    1.创建Mvc项目 2.安装Entity Framework 2.1.如下图打开程序包管理器控制台: 2.2.输入命令Install-Package EntityFramework,即可安装Entit ...

  8. ASP.NET MVC+Entity Framework 访问数据库

    Entity Framework 4.1支持代码优先(code first)编程模式:即可以先创建模型类,然后通过配置在EF4.1下动态生成数据库. 下面演示两种情形: 1.代码优先模式下,asp.n ...

  9. Spring学习之第一个Spring MVC程序(IDEA开发环境)

    回顾Java平台上Web开发历程来看,从Servlet出现开始,到JSP繁盛一时,然后是Servlet+JSP时代,最后演化为现在Web开发框架盛行的时代.一般接触到一个新的Web框架,都会想问这个框 ...

随机推荐

  1. 基于jquery,bootstrap数据验证插件bootstrapValidator

    bootstrap:能够增加兼容性的强大框架. 因为项目需要数据验证,看bootstrapValidator 还不错,就上手一直,完美兼容,话不多说. 需要引用css: bootstrap.min.c ...

  2. Android获取apk的版本及包名等信息

    import android.app.Activity; import android.content.Context; import android.content.pm.ApplicationIn ...

  3. 【spring cloud】spring cloud分布式服务eureka启动时报错:java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init>([Ljava/lang/Object;)V

    spring cloud分布式服务eureka启动时报错:java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApp ...

  4. 【JSTL】<c:if test=“”>没有else的解决方法

    后台封装了一个对象 放在model里: model.addAttribute("notice", notice); notice是个对象 然后前台如果没有公告的话,希望显示暂无公告 ...

  5. python学习:两个py文件间的函数调用

    本例子是测试一些数据分析模型的R值,R值越接近1,表明该模型越适合分析该数据集. 本例子是在集成开发环境Aptana Studio 3 中创建 一个dataAnaly ,然后创建modelTest.p ...

  6. "com.android.ide.s.ProcessException:Process 'cand 'C:\Program Files\Java\jdk1.8.0_60\bin\java.exe'' finished with non-zero exit value 2"

    使用Android Studio 出现该问题: "com.android.ide.common.process.ProcessException: org.gradle.process.in ...

  7. Intellij IDEA中使用log4j日志

    一.在pom.xml中添加依赖 <dependency> <groupId>log4j</groupId> <artifactId>log4j</ ...

  8. java 实现poi方式读取word文件内容

    1.下载poi的jar包 下载地址:https://www.apache.org/dyn/closer.lua/poi/release/bin/poi-bin-3.17-20170915.tar.gz ...

  9. OpenCV和Matlab

    OpenCV(Open Computer Vision)是现在流行的做计算机视觉和图像处理的工具库.Matlab一般用于快速实现算法和测试,用于研究理论,OpenCV适合开发实际的图像处理或视觉的应用 ...

  10. Solidworks如何隐藏零件细节,如何让零件变成一个输入

    先把东西另存为IGS格式   再次打开这个IGS文件,凡是看到这个对话框都选择取消,然后确定   打开之后,还是可以看到文件结构,但是再打开每个零件都变成了输入,所以就相当于隐藏了文件细节,不知道怎么 ...