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. WCF 安全性之 自定义用户名密码验证

    案例下载 http://download.csdn.net/detail/woxpp/4113172 客户端调用代码 通过代理类 代理生成 参见 http://www.cnblogs.com/woxp ...

  2. OpenWebGlobe-开源三维GIS初体验(附源码和演示)

    1.OpenWebGlobe简介 OpenWebGlobe是一个高性能的三维引擎.可应用于可视化仿真,游戏,三维GIS,虚拟现实等领域.它使用纯javascript编写,可以运行在任何支持HTML5. ...

  3. SQL Server中的事务与锁

    了解事务和锁 事务:保持逻辑数据一致性与可恢复性,必不可少的利器. 锁:多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂,不能保证数据的安全正确读写. 死锁: ...

  4. 两张图总结 Neutron 架构 - 每天5分钟玩转 OpenStack(74)

    前面我们详细讨论了 Neutron 架构,包括 Neutron Server,Core 和 Service Agent.现在用两张图做个总结.先看第一张: 与 OpenStack 其他服务一样,Neu ...

  5. NFS Volume Provider(Part III) - 每天5分钟玩转 OpenStack(64)

    今天我们将前一小节创建的 NFS volume “nfs-vol-1” attach 到 instance “c2”上. 这里我们重点关注 nova-compute 如何将“nfs-vol-1” at ...

  6. C++中的内存管理

    在C++中也是少不了对内存的管理,在C++中只要有new的地方,在写代码的时候都要想着delete. new分配的时堆内存,在函数结束的时候不会自动释放,如果不delete我分配的堆内存,则会造成内存 ...

  7. 如何利用Python生成随机密码

    写了个程序,主要是用来检测MySQL数据库的空密码和弱密码的, 在这里,定义了三类弱密码: 1. 连续数字,譬如123456,在get_weak_num中实现 2. 连续字母,譬如abcdef,在ge ...

  8. 查看nginx配置文件路径

    进入nginx安装目录(我的是/usr/local/nginx-1.7.8/) 进入sbin目录,输入 ./nginx -t查看nginx配置文件路径以及该文件语法是否正确 ./nginx -v查看n ...

  9. C# 将内容写入txt文档

    <1>  FileStream fs = new FileStream(@"D:\text.txt", FileMode.Append); StreamWriter s ...

  10. TCP三次握手和四次挥手状态变迁解析

    TCP是TCP/IP的传输层控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 首先需要了解几个名词:tcp标志位,有6种分别为:SYN(synchronous建立联机) .ACK(ackn ...