学习资料:http://msdn.microsoft.com/zh-cn/data/jj193542

视频建立的控制台应用程序,我在这里使用MVC。

一、非常有磁性的,非常优雅

很喜欢看这个人的视频,虽然我听不太懂,也不知道他叫什么。他的声音非常有磁性,让我。。。,让我。。。。。。,百听不厌。

看到了吗?他一边讲解,代码就一边流畅的显示在屏幕上,让你懂得,什么是优雅。

原来也看过,但发现动手时还是无从下手,所以,不仅应该学习代码,还应该学习流程,先做什么,后做什么,为什么要这样做。

二、建立MVC项目

环境:vs.net2013 sql2008 ef6.1 mvc5

身份验证选择个人用户账户,只是免去自己添加验证JS的麻烦,实际开发使用  无身份验证。

三、创建模型

就像以前要先创建数据库一样,现在是先创建模型。

因为使用的是个人身份验证,所以系统自动生成一些Controler/Model/View,不用管它。

代码是我复制的,说明如下:

1、BlogId 这样写能与外键列名保持一致,感觉这样好点

2、类名用的是Blog,而不是Blogs。实体一般用单数,在生成数据表是,会自动添加成复数表名 Blogs。

3、Post类还未建立,所以报错。但现在我们使用的是Code First,可以这样写,因为我们现在也不编译。在写一个实体类时,即使没有设计文档,心里也应该有个框框了,要建哪些实体,实体之间有什么关联。

4、Post类一样使用单数形式,而集合使用的是同名复数 Posts 。

5、virtual 用于延迟加载,也就是你在使用Blog实体对象时,如果不使用相关联的Post表中的数据,系统就不加载,你使用的时候,才到数据库查询相应的Post数据。

这样可能要访问两次或多次数据库,所以一般不会使用延迟加载,而是在需要时将需要的字段一次性取回。

因为是CodeFirst,所以,写实体属性时,应该也顺便将常规的特性加上:

在Name上面输入[],在里面输入Display ,我就会拼这个单词,所以,每次都用她     

在Display上右键,导入命名空间。

也可以这样,输入完Display后按Ctrl + . ,然后回车,爽不?

弄成这样:

加上长度(20)还是有点用的,否则如果不小心输入了100个字符,不仅没有必要,你还要考虑列表显示的问题了。

四、创建上下文

上面只是建立了两个实体类,如果要与数据库关联,还需要创建上下文。

五、安装(更新)EF,需要联网更新

若果你的VS界面下方没有 程序包管理控制台 ,按下面方式打开:

六、编辑web.config,添加连接字符串

 

下面该干嘛了?再看看视频

七、生成界面

因为是全新数据库,所以,建立了实体对象,并与上下文关联后,就可以直接写界面了。

先编译一下。

八、删除原有数据库

这时程序未运行,所以还不会生成数据库。

先把原来的删掉,全新的吗,原来怎么应该有。

真真正正,干干净净

九、运行列表页面

空的

十、添加记录

十一,查看数据库

刚才没用这个是因为连不上。

 

十二、模型更改

1、Enable-Migrations

2、修改实体对象

3、Add-Migration AddUrl

4、Update-Database

十三、添加新模型

十四、将实体添加进上下文

十五、Add-Migration AddUser

十六、Update-Database

实体框架 (EF) 入门 => 二、在全新的数据库中使用 Code First的更多相关文章

  1. 实体框架 (EF) 入门 => 一、我该用哪个工作流?

    入门的参考资料:http://msdn.microsoft.com/zh-cn/data/ee712907 本篇的参考资料:http://msdn.microsoft.com/zh-cn/data/j ...

  2. 实体框架 (EF) 入门 => 六、性能注意事项

    这个还真是复杂,看了看微软的文档,有些根本就看不懂,有些能看懂,但对我这种菜鸟也不会去用. 无从下手啊,前面放了几个链接,挨个试试吧. 一.显式打开连接 这个我测试过,有些时候,需要我们显示打开连接, ...

  3. 实体框架 (EF) 入门 => 三、CodeFirst 支持的完整特性列表

    KeyAttribute 设置主键.如果为int类型,将自动设置为自增长列. 系统默认以Id或类名+Id作为主键.StringLengthAttribute 可设置最大最小长度以及验证提示信息等.最大 ...

  4. 实体框架 (EF) 入门 => 四、CodeFirst 枚举支持

    当使用 Code First 开发时,通常是从编写用来定义概念(域)模型的 .NET Framework 类开始. 插入记录没有为 Budget 赋值. 数值类型默认值为0,数据库中都为not nul ...

  5. 实体框架 (EF) 入门 => 五、连接和模型

    public class BloggingContext : DbContext  {  public BloggingContext()          : base("name=Blo ...

  6. Entity Framework 实体框架的形成之旅--几种数据库操作的代码介绍(9)

    本篇主要对常规数据操作的处理和实体框架的处理代码进行对比,以便更容易学习理解实体框架里面,对各种数据库处理技巧,本篇介绍几种数据库操作的代码,包括写入中间表操作.联合中间表获取对象集合.递归操作.设置 ...

  7. EF实体框架之CodeFirst二

    在codefirst一中也说了Mapping是实体与数据库的纽带,model通过Mapping映射到数据库,我们可以从数据库的角度来分析?首先是映射到数据库,这个是必须的.数据库里面一般包括表.列.约 ...

  8. Entity Framework(实体框架 EF)

    什么是Entity Framework呢(下面简称EF)? EF(实体框架)是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架.ORM(对象关系映射框架):指的是面向 ...

  9. .NET实体框架EF之CodeFirst

    ADO.NET Entity Framework 以 Entity Data Model (EDM) 为主,将数据逻辑层切分为三块,分别为 Conceptual Schema, Mapping Sch ...

随机推荐

  1. [HDOJ2604]Queuing(递推,矩阵快速幂)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2604 递推式是百度的,主要是练习一下如何使用矩阵快速幂优化. 递推式:f(n)=f(n-1)+f(n- ...

  2. leetcode:Coin Change

    You are given coins of different denominations and a total amount of money amount. Write a function ...

  3. Effective STL 中文版(大全)

    Effective STL 中文版(大全) 作者:winter 候捷说,对于STL,程序员有三个境界,开始是使用STL,然后是理解STL,最后是补充STL.Effective STL是一本非常好的书, ...

  4. objective-c 与 js之间传递中文乱码

    最近在做关于js改写oc framework的小project,遇到了不少问题 其中刚遇到的是关于如何在两者之间传递中文字符,带特殊字符的URL字符串 不会很详细的介绍太多,以后会回头做个总结 oc传 ...

  5. Navicat数据存放位置和备份数据库路径设置

    navicat的数据库存放位置在什么地方?带着这样的疑问,我们去解决问题,navicat是默认安装,mysql也是默认安装,数据库存在默认用户所在的目录下面. 安装MySQL时,请选择“Custom” ...

  6. 1038: [ZJOI2008]瞭望塔

    半平面交. 半平面指的就是一条直线的左面(也不知道对不对) 半平面交就是指很多半平面的公共部分. 这道题的解一定在各条直线的半平面交中. 而且瞭望塔只可能在各个点或者半平面交折线的拐点处. 求出半平面 ...

  7. POJ 1456 (贪心+并查集) Supermarket

    有n件商品,每件商品有它的利润和售出的最后期限,问能够得到的最大利润是多少 这道题和 HDU 1789 Doing Homework again 几乎一模一样,只不过这个是求最的扣分,本题是求最大利润 ...

  8. nanakon

    1.安装python pip3 install tornado pip3 install pymysql pip3 install qiniu pip3 install pillow 2.安装mysq ...

  9. 【Java】SHA加密

    package sdfg; import java.math.BigInteger; import java.security.MessageDigest; import java.security. ...

  10. Dataguard后台进程解析

    Log Transport Service   主节点上,日志传输服务主要使用如下几个进程: 1.LGWR     LGWR搜集事务日志,并且更新联机日志.在同步模式下,LGWR直接将redo信息直接 ...