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的更多相关文章

  1. 《Linux命令、编辑器与shell编程》第三版 学习笔记---002

    <Linux命令.编辑器与shell编程>第三版 学习笔记---001 Linux命令.编辑器与shell编程 Shell准备 1.识别Shell类型 echo  $0 echo $BAS ...

  2. entityframework学习笔记--005-给code first一个正确的解释

    在微软官方关于ef7的介绍中强调,ef7将舍弃database first.model first,只保留code first的使用.这引起了很多人的担忧,担忧源自对code first的错误理解.因 ...

  3. entityframework学习笔记--004-无载荷与有载荷关系

    1.无载荷(with NO Payload)的多对多关系建模 在数据库中,存在通过一张链接表来关联两张表的情况.链接表仅包含连接两张表形成多对多关系的外键,你需要把这两张多对多关系的表导入到实体框架模 ...

  4. entityframework学习笔记--001

    最近想重新好好学习一下entityframework,于是在院子里找到了一篇不错的博客.下面把学习的过程记录下来,方便以后复习. 学习过程参考大神的博客:http://www.cnblogs.com/ ...

  5. entityframework学习笔记--009-使用原生sql语句操作数据

    1 使用原生SQL语句更新--Database.ExecuteSqlCommand 假设你有一张如图9-1所示的Payment数据库表. 图9-1 1.1 实体类型: public class Pay ...

  6. EntityFramework学习笔记1--安装

    1.新建项目 2.工具=>NuGet程序包管理器=>程序包管理控制器 3.PM> Install-Package EntityFramework 安装EF

  7. entityframework学习笔记--008-实体数据建模基础之继承关系映射TPH

    Table per Hierarchy Inheritance 建模 1.让我们假设你有如图8-1中的表,Employee表包含hourly employees 和salaried employees ...

  8. entityframework学习笔记--007-实体数据建模基础之继承关系映射TPT

    Table per Type Inheritance (TPT)建模 1.假设你有两张表与一张公共的表密切相关,如图7-1所示,Businiss表与eCommerce表.Retail表有1:0...1 ...

  9. entityframework学习笔记--006-表拆分与实体拆分

    1.1 拆分实体到多张表 假设你有如下表,如图6-1.Product表用于存储商品的字符类信息,ProductWebInfo用于存储商品的图片,两张表通过SKU关联.现在你想把两张表的信息整合到一个实 ...

随机推荐

  1. Android开发学习之路-图片颜色获取器开发(1)

    系列第一篇,从简单的开始,一步一步完成这个小项目. 颜色获取就是通过分析图片中的每个像素的颜色,来分析整个图片的主调颜色,有了主调颜色,我们可以用于图片所在卡片的背景或者标题颜色,这样整体感更加强烈. ...

  2. Report processing of Microsoft Dynamic AX

    Report processing of Microsoft Dynamic AX 版权声明:本文为博主原创文章,未经博主允许不得转载. The implementation of a general ...

  3. iOS-证书申请

    本文讲述发布证书的申请 首先登陆https://developer.apple.com(99美元账号) a.点击页面右上角 b.进入 c.选择证书类型 distribution,选择添加 d.点击+后 ...

  4. angularjs UI Libraries

    angularjs UI Libraries ● ng-bootstrap is currently available. ● PrimeNG has largest number of compon ...

  5. C#设计模式系列:模板方法模式(Template Method)

    你去银行取款的时候,银行会给你一张取款单,这张取款单就是一个模板,它把公共的内容提取到模板中,只留下部分让用户来填写.在软件系统中,将多个类的共有内容提取到一个模板中的思想便是模板方法模式的思想. 模 ...

  6. 【Win 10应用开发】认识一下UAP项目

    Windows 10 SDK预览版需要10030以上版本号的Win 10预览版系统才能使用.之前我安装的9926的系统,然后安装VS 2015 CTP 6,再装Win 10 SDK,但是在新建项目后, ...

  7. jQuery源码分析系列(31) : Ajax deferred实现

    AJAX的底层实现都是浏览器提供的,所以任何基于api上面的框架或者库,都只是说对于功能的灵活与兼容维护性做出最优的扩展 ajax请求的流程: 1.通过 new XMLHttpRequest 或其它的 ...

  8. 前端工程师技能之photoshop巧用系列第二篇——测量篇

    × 目录 [1]测量信息 [2]实战 [3]注意事项 前面的话 前端工程师使用photoshop进行的大量工作实际上是测量.本文是photoshop巧用系列第二篇——测量篇 测量信息 在网页制作中需要 ...

  9. 分享一段数据库中表数据更新SQL

    应用场景 我们在应用程序开发的时候,经常会遇到这样的一种情况:附属表更新了,主表的数据没有更新,这个关联表不只是外键的关联(通过附属表 ID 关联),主表中还会存在一些附属表的字段,这样一般做的目的是 ...

  10. 正则匹配抓取input 隐藏输入项和 <td>标签内的内容

    这里不多作解释了,只要提供方法,如果想了解正则匹配,就去百度. 第一条是,匹配出所有的隐藏输入域 $patern = "/<input(.*?)type=\"hidden\& ...