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. maven pom中的repository节点配置没有起作用

    问题描述 昨天晚上想用spring boot快速搭建一个web开发的项目,就打开spring boot的doc,按照说明开始尝试.没想到出师未捷身先死,第一步就挂了. 以下是spring boot的配 ...

  2. Uiautomator 2.0之UiWatcher类学习小记

    1. 主要功能 使用此方法可以处理中断问题,从而保证测试用例的正常运行. 2. 相关API API 说明 registerWatcher (String name, UiWatcher watcher ...

  3. .NET平台开源项目速览(11)KwCombinatorics排列组合使用案例(1)

    今年上半年,我在KwCombinatorics系列文章中,重点介绍了KwCombinatorics组件的使用情况,其实这个组件我5年前就开始用了,非常方便,麻雀虽小五脏俱全.所以一直非常喜欢,才写了几 ...

  4. 配置 L3 agent - 每天5分钟玩转 OpenStack(99)

    上一节我们介绍了路由服务(Routing)的基本功能,今天教大家如何配置. Neutron 的路由服务是由 l3 agent 提供的. 除此之外,l3 agent 通过 iptables 提供 fir ...

  5. MySQL常见错误

    1. TokuFT file system space is really low and access is restricted 解决方法:修改tokudb_fs_reserve_percent参 ...

  6. [ROS] Studying Guidance

    Reference: https://www.zhihu.com/question/35788789 安装指南:http://wiki.ros.org/indigo/Installation/Ubun ...

  7. Hammer.js分析(二)——manager.js

    “Manager”是所有识别器实例的容器,它为你设置的元素安装了交互事件监听器,并设置了触摸事件特性. manager.js中的代码会涉及到input.js和recoginzer.js中的内容,这里会 ...

  8. c/c++系列的运算符优先级总结

    经常写程序的时候,遇到运算符优先级的问题,令我汗颜的是,查书的次数挺多的……狠狠心,总结下.不过还要结合大量的编程实践来深入脑海. 1.首先永远忘不了的是,逗号运算符级别最低,毫无争议的还有()括起来 ...

  9. 1Z0-053 争议题目解析688

    1Z0-053 争议题目解析688 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 688.Which two statements are true about the compr ...

  10. Shp数据批量导入Postgresql工具的原理和设计

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 在制作整体的开源工具箱产品中,数据入库是一个重要的环节.虽然 ...