实体框架 (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

时间: 2024-08-10 03:18:55

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

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

今天有幸被召回母校给即将毕业的学弟学妹们讲我这两年的工作史,看了下母校没啥特别的变化,就是寝室都安了空调,学妹们都非常漂亮而已..好了不扯蛋了,说下今天的主题吧.这些天我在深度定制语法高亮功能的同时发现了博客园提供的一些有意思的函数,甚至有几个博客园都没用到,我也不知道怎么才能触发那些功能..打开这个js就可以看到很多好用的东西了,虽然写的不怎么样,但是至少有这些功能. ps: 推荐安装一个代码格式化的插件,否则一坨看着蛋疼.比如第一个就是 log,方便调试. http://www.qidian

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

KeyAttribute 设置主键.如果为int类型,将自动设置为自增长列. 系统默认以Id或类名+Id作为主键.StringLengthAttribute 可设置最大最小长度以及验证提示信息等.最大长度会映射到数据库.MaxLengthAttribute 最大长度.会映射的数据库.ConcurrencyCheckAttribute 修改或删除时,将带此属性的列的原有值与主键一起传送到数据库,如果传递的值与数据库中不一致,则修改或删除失败.用于并发检查.RequiredAttribute 必填字

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

当使用 Code First 开发时,通常是从编写用来定义概念(域)模型的 .NET Framework 类开始. 插入记录没有为 Budget 赋值. 数值类型默认值为0,数据库中都为not null,如果不设置Requird特性,可以不赋值,保存时自动使用默认值. 默认值是保存时EF在初始化类时赋给的. Enum类型数据库字段类型为int,保存Enum类型对应的序号,使用时显示相应的字符. 枚举类型并不会映射到数据库中.

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

public class BloggingContext : DbContext  {  public BloggingContext()          : base("name=BloggingCompactDatabase")      {      }  } 使用此形式可以明确要求在配置文件中查找连接字符串.如果未找到具有给定名称的连接字符串,则将引发异常. <configuration>     <connectionStrings>       &

(转)Inno Setup入门(二)——修改安装过程中的图片

本文转载自:http://blog.csdn.net/augusdi/article/details/8564793 修改安装过程中的图片 一般编译之后,安装过程中出现在左边图片是是下图这个样子的: 其实也可以修改它,只需要在setup段中作一点稍微的修改,加一行代码即可: [setup] AppName=Test AppVerName=TEST DefaultDirName="E:\TEST" AppVersion=1.0 WizardImageFile=dh.bmp [files]

实体类(JavaBean)一般都是和数据库中的表结构一一对应

实体类(JavaBean)一般都是和数据库中的表结构一一对应 本节希望实现的是,一个java类,能和数据库对应上,然后操作数据库. 实体类 JavaBean有特定的写法 必须要有一个无惨构造 属性必须私有化 必须有对应的get/set方法 一般用来和数据库的字段做映射 ORM ORM:对象关系映射 表--->类 字段--->属性 行记录--->对象 id name age address 1 桐人 22 日本 2 亚丝娜 22 日本 3 爱丽丝 22 日本 class People{  

011.EF实体框架(入门)

1>ASP.NET MVC开发中模型的实现方法 模型的实现方法 两种方法1手动2自动(工具 EF)1.1手动创建模型(写好模型元数据)[练习过了 项目!] 前提条件:先手动创建数据库和表 (模型:实体类,实体访问类,Sqlhelper) (Sqlhelper使用ADO.NET传统方法实现) 1.2使用EF(Entity Framework:实体框架)创建模型 2>EF的概念2.1什么是EF***EF是 实体框架 (Entity Framework)的简称,***EF 可以用来定义模型类并操作数

Entity Framework(实体框架 EF)

什么是Entity Framework呢(下面简称EF)? EF(实体框架)是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架.ORM(对象关系映射框架):指的是面向对象的对象模型和关系型数据库的数据结构之间的相互转换. 如此官方的解释,你懂吗? 我理解的是,业务实体在内存中表现为对象,在数据库中表现为数据,内存中的对象之间,存在关联和继承关系,而在数据库中,关系数据无法直接表达这些关系.而对象-关系映射(ORM)就是解决这一问题的.ORM作为一个中间件,实现程

MvvmLight框架使用入门(二)

上一篇我们简单对MvvmLight做了介绍.罗列了三个DLL中,各个命名空间下主要类的定义及大致作用.因为只是范范的概论,对于从未接触过MvvmLight的萌新来说,根本就是在晃点他们.不过万事开头难么,本篇则会以Hello World般的简单例子,来给萌新们当头一击,教会他们使用MvvmLight最最基础的部分. 首先还是动手练习,打开免费又强大的Visual Studio 2015 Community,创建一个WPF Application.不创建Win10的Universal App是因为