entityframework学习笔记--002-database first
1.实体框架紧紧地和Visual Studio集成在一起,为了在你的应用程序中使用实体框架,我们增加一个ADO.NET实体数据框架到你的项目。方法如下:
右键你的项目,然后选择 ➤New Item(新建项)。在弹出的对话框中(如图1-4),选择Data(数据)模板下边的ADO.NET Entity Date Model(实体数据模型)模板。然后单击Add(增加)打开数据模型创建导向。

图1-4 向项目中添加实体数据模型
2.在弹出的对话框中会有4个选项,1 来自数据库的EF设计器,2 空的EF设计器模型,3 空的CodeFirst模型,4 来自数据库的Code First。其中1和2算是一种方式,是使用可视化的ef设计器设计实体模型;3和4算是一种方式,是使用代码的方式设计实体模型。如下图1-5。本例中我所使用得数据库的表结构如图1-5-2

图1-5

图1-5-2
3.这其中初学者使用最多的也就是第一种了“来自数据库的EF设计器”,我们选择第一种,点击“下一步”,在弹出的对话框中选择“新建连接”,然后新建一个数据库连接。如图1-6.

图1-6
4.然后在弹出的对话框中选择“是,在连接字符串中包含敏感数据”,点击“下一步”。如图1-7

图1-7
5.选择所需要的数据库和表,选择“确定单复数形式”(这个是为了生成实体是去掉复数形式,比如我们的表叫做Students,生成的实体应该叫做Student,叫做Students就不合适了吧。),然后点击“完成”。如图1-8

图1-8
6.生成的ef实体模型视图就如1-9所示了,我们可以看到表之间的关系也已经被映射了进来,为此ef设计器还为我们生成了各自的导航属性,通过导航属性可以非常方便的访问关联属性。

图1-9
7.下面是一个简单的代码示例。我们可以使用模型设计器为我们生成的数据访问类“myefrecipesEntities”来进行数据库的访问操作。“myefrecipesEntities”继承自“DbContext”,DbContext是ef数据操作的核心。
static void Main(string[] args)
{
using (myefrecipesEntities db = new myefrecipesEntities())
{
Class c1 = new Class() { Name = "class1" };
Student s1 = new Student() { Name = "rj", Age = , Class = c1 }; db.Students.Add(s1); int i = db.SaveChanges(); foreach (var item in db.Students)
{
Console.WriteLine("name \t age \t class");
Console.WriteLine("{0} \t {1} \t {2}",item.Name,item.Age,item.Class.Name);
}
} Console.ReadKey();
}
代码输出:

8.本篇先到这里吧,还有几种生成实体模型的方式以后再介绍。总之,无论使用database first,model first,code first,我们最终要操作的都是其中射影的实体,例如本例中的Student,Class。其中的实体可以像使用程序中的其他类型一样,这样极大的提供了方便,同时也提高了来发的效率。
entityframework学习笔记--002-database first的更多相关文章
- 《Linux命令、编辑器与shell编程》第三版 学习笔记---002
<Linux命令.编辑器与shell编程>第三版 学习笔记---001 Linux命令.编辑器与shell编程 Shell准备 1.识别Shell类型 echo $0 echo $BAS ...
- entityframework学习笔记--005-给code first一个正确的解释
在微软官方关于ef7的介绍中强调,ef7将舍弃database first.model first,只保留code first的使用.这引起了很多人的担忧,担忧源自对code first的错误理解.因 ...
- entityframework学习笔记--004-无载荷与有载荷关系
1.无载荷(with NO Payload)的多对多关系建模 在数据库中,存在通过一张链接表来关联两张表的情况.链接表仅包含连接两张表形成多对多关系的外键,你需要把这两张多对多关系的表导入到实体框架模 ...
- entityframework学习笔记--001
最近想重新好好学习一下entityframework,于是在院子里找到了一篇不错的博客.下面把学习的过程记录下来,方便以后复习. 学习过程参考大神的博客:http://www.cnblogs.com/ ...
- entityframework学习笔记--009-使用原生sql语句操作数据
1 使用原生SQL语句更新--Database.ExecuteSqlCommand 假设你有一张如图9-1所示的Payment数据库表. 图9-1 1.1 实体类型: public class Pay ...
- EntityFramework学习笔记1--安装
1.新建项目 2.工具=>NuGet程序包管理器=>程序包管理控制器 3.PM> Install-Package EntityFramework 安装EF
- entityframework学习笔记--008-实体数据建模基础之继承关系映射TPH
Table per Hierarchy Inheritance 建模 1.让我们假设你有如图8-1中的表,Employee表包含hourly employees 和salaried employees ...
- entityframework学习笔记--007-实体数据建模基础之继承关系映射TPT
Table per Type Inheritance (TPT)建模 1.假设你有两张表与一张公共的表密切相关,如图7-1所示,Businiss表与eCommerce表.Retail表有1:0...1 ...
- entityframework学习笔记--006-表拆分与实体拆分
1.1 拆分实体到多张表 假设你有如下表,如图6-1.Product表用于存储商品的字符类信息,ProductWebInfo用于存储商品的图片,两张表通过SKU关联.现在你想把两张表的信息整合到一个实 ...
随机推荐
- .NET基础知识点
.NET基础知识点 l .Net平台 .Net FrameWork框架 l .Net FrameWork框架提供了一个稳定的运行环境,:来保障我们.Net平台正常的运转 l 两种交 ...
- SQLyog图形化l数据库的操作和学习
1:首先SQLyog作为mysql的图形化操作工具,是一个收费的工具,但是在天朝大国,任何收费的软件都可以被破解,具体软件的安装不做多叙述,支持正版,毕竟作为一个开发人员,辛辛苦苦开发出来的软件,还指 ...
- 谈谈StringBuffer和StringBuilder
(1) 速度 在执行速度方面的比较:StringBuilder > StringBuffer > String ①String 是不可变的对象(String类源码中存放字符的数组被声明为f ...
- SQL Server中使用Check约束提升性能
在SQL Server中,SQL语句的执行是依赖查询优化器生成的执行计划,而执行计划的好坏直接关乎执行性能. 在查询优化器生成执行计划过程中,需要参考元数据来尽可能生成高效的执行计划, ...
- ExtJs4 基础必备
认识ExtJs的开发包 下载路径:http://www.sencha.com/products/extjs/download/ 解压有20多兆,别怕,真正运行的没这么大.认识下这个包的文件结构吧. b ...
- Android中activity背景色的设置
Android应用开发——系统自带样式Android:theme •android:theme="@android:style/Theme.Dialog" 将一个Activit ...
- php使用post动态选择头像和js事件动态改变头像
<html> <head> <meta http-equit="Content-type" content="text/html" ...
- Mac 可设置环境变量的位置、查看和添加PATH环境变量
Mac 启动加载文件位置(可设置环境变量) ------------------------------------------------------- (1)首先要知道你使用的Mac OS X是什 ...
- [C#]浅析ref、out参数
转载:http://www.cnblogs.com/vd630/p/4601919.html#top 按引用传递的参数算是C#与很多其他语言相比的一大特色,想要深入理解这一概念应该说不是一件容易的事, ...
- 【JAVA】基于MVC架构Java技术荟萃案例演练
基于JAVA-MVC技术的顾客管理项目案例总结 作者 白宁超 2016年6月9日22:47:08 阅读前瞻:本文源于对javaweb相关技术和资料汇总,涉及大量javaweb基础技术诸如:Servle ...