实体框架 (EF) 入门 => 二、在全新的数据库中使用 Code First
学习资料: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的更多相关文章
- 实体框架 (EF) 入门 => 一、我该用哪个工作流?
入门的参考资料:http://msdn.microsoft.com/zh-cn/data/ee712907 本篇的参考资料:http://msdn.microsoft.com/zh-cn/data/j ...
- 实体框架 (EF) 入门 => 六、性能注意事项
这个还真是复杂,看了看微软的文档,有些根本就看不懂,有些能看懂,但对我这种菜鸟也不会去用. 无从下手啊,前面放了几个链接,挨个试试吧. 一.显式打开连接 这个我测试过,有些时候,需要我们显示打开连接, ...
- 实体框架 (EF) 入门 => 三、CodeFirst 支持的完整特性列表
KeyAttribute 设置主键.如果为int类型,将自动设置为自增长列. 系统默认以Id或类名+Id作为主键.StringLengthAttribute 可设置最大最小长度以及验证提示信息等.最大 ...
- 实体框架 (EF) 入门 => 四、CodeFirst 枚举支持
当使用 Code First 开发时,通常是从编写用来定义概念(域)模型的 .NET Framework 类开始. 插入记录没有为 Budget 赋值. 数值类型默认值为0,数据库中都为not nul ...
- 实体框架 (EF) 入门 => 五、连接和模型
public class BloggingContext : DbContext { public BloggingContext() : base("name=Blo ...
- Entity Framework 实体框架的形成之旅--几种数据库操作的代码介绍(9)
本篇主要对常规数据操作的处理和实体框架的处理代码进行对比,以便更容易学习理解实体框架里面,对各种数据库处理技巧,本篇介绍几种数据库操作的代码,包括写入中间表操作.联合中间表获取对象集合.递归操作.设置 ...
- EF实体框架之CodeFirst二
在codefirst一中也说了Mapping是实体与数据库的纽带,model通过Mapping映射到数据库,我们可以从数据库的角度来分析?首先是映射到数据库,这个是必须的.数据库里面一般包括表.列.约 ...
- Entity Framework(实体框架 EF)
什么是Entity Framework呢(下面简称EF)? EF(实体框架)是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架.ORM(对象关系映射框架):指的是面向 ...
- .NET实体框架EF之CodeFirst
ADO.NET Entity Framework 以 Entity Data Model (EDM) 为主,将数据逻辑层切分为三块,分别为 Conceptual Schema, Mapping Sch ...
随机推荐
- Microsoft.ACE.OLEDB.12.0 错误 上传读取Excel错误
使用"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filePath + ";&quo ...
- POJ 2524 (简单并查集) Ubiquitous Religions
题意:有编号为1到n的学生,然后有m组调查,每组调查中有a和b,表示该两个学生有同样的宗教信仰,问最多有多少种不同的宗教信仰 简单并查集 //#define LOCAL #include <io ...
- 精选37条强大的常用linux shell命令组合
任务 命令组合 1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \;find . type f ...
- 漫游Kafka实现篇之分布式
Zookeeper节点标记 当路径中的元素包括在方括号里比如[xyz],则表示xyz表示的值是不固定的,每个可能的值都有一个Zookeeper节点.比如/topics/[topic]表示每个topic ...
- 【同行说技术】swift最全学习资料汇集(一)
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序.2015年12月4日,苹果公司宣 ...
- ISO中运行时简单使用及KVC补充
一.运行时简单使用 1.包含头文件<objc/message.h> 2.给对象发送消息的方法:objc_msgSend(id, SEL, ....) * 第1个参数是对象 * 第2个参数是 ...
- 【解题报告】zju-1145 Dreisam Equations
原题地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=145 题目大意:在给定的等式右边数字之间加上加.减.乘运算符,使等式成 ...
- UVa 11520 Fill the Square 填充正方形
在一个 n * n 网格中填了一些大写字母,你的任务是把剩下的格子中也填满大写字母,使得任意两个相邻格子(即有公共边的格子)中的字母不同.如果有多重填法,则要求按照从上到下,从左到右的顺序把所有格子连 ...
- grep -A -B选项详解和mysqlbinlog
grep的-A-B-选项详解(转)[@more@] grep能找出带有关键字的行,但是工作中有时需要找出该行前后的行,下面是解释 1. grep -A1 keyword filename 找出file ...
- 五:分布式事务一致性协议paxos的应用场景
1.应用场景 (1)分布式中的一致性 Paxos算法主要是解决一致性问题,关于“一致性”,在不同的场景有不同的解释: NoSQL领域:一致性更强调“能读到新写入的”,就是读写一致性数据库领域:一致性强 ...