Entity Framework 二
本篇主要介绍:创建了实体数据模型,生成了那些文件以及其代表意义
创建实体数据模型
上一篇的最后,我们创建了数据库,现在我们利用数据库来生成我们的实体数据模型,这种形式我们称为数据库优先,后面会介绍代码优先。
①新建一个控制台,版本设置为4.5

②添加 - >单击新建项目,从弹出菜单中选择ADO.NET实体数据模型,给新项目名称“School”,然后单击添加按钮。

③选择模型:

④连接到数据库:

⑤全部勾上

如果数据库中的表名是复数,生成的对象名称复数或单数化 复选框会单独化一个实体集名称。例如,如果SchoolDB具有Students表名,那么entityset将是单数Student。
同样,如果表格与其他表格有一对多或多对多的关系,则模型之间的关系将被复数化。例如,学生与课程表具有多对多的关系,所以学生实体集合将具有用于收集课程的多个属性名称“课程”。
第二个复选框“ 在模型中包含外键列”包含外键属性,用于表示外键。例如,Student表与标准表具有一对多的关系。所以每个学生只有一个标准。为了在模型中表示这个,Student实体集包含标准导航属性的StandardId属性。如果这个复选框未被选中,那么它将只包含Standard属性,但不包含Student实体集中的StandardId。
第三个复选框,将所选存储过程和函数导入到实体模型中,自动为存储过程和函数创建函数导入。您不需要手动导入,如实体框架5.0之前所必需的。
⑥生成 School.edmx

⑦双击School.edmx打开设计器

实体-表映射
EDM中的每个实体都与数据库表映射。您可以通过右键单击EDM设计器中的任何实体来检查实体表映射 - >选择表映射。另外,如果您从设计器更改实体的任何属性名称,则表映射将自动反映该更改。

上下文和实体
每个实体数据模型为EDM中包含的每个数据库表生成一个上下文类和实体类。展开School.edmx并查看两个重要文件
{EDM Name} .Context.tt 和 {EDM Name} .tt:

School.Context.tt:无论何时更改实体数据模型(.edmx文件),此T4模板文件都会生成一个上下文类。您可以通过展开School.Context.tt来查看上下文类文件。上下文类位于{EDM Name} .context.cs文件中。默认的上下文类名是{DB Name} +实体。例如,SchoolDB的上下文类名是SchoolDBEntities,那么上下文类是从实体框架中的DBContext类派生的。(在EF 5.0之前,它是从ObjectContext派生的。)

School.tt:School.tt是一个T4模板文件,为每个数据库表生成实体类。实体类是POCO(普通旧CLR对象)类。下面的代码片段显示了学生实体。

您可以在XML视图中打开此EDM设计器,您可以在XML视图中一起查看EDM的所有三个部分 - 概念架构(CSDL),存储架构(SSDL)和映射架构(MSL)。
右键单击School.edmx - >单击“选择打开方式 ————》 XML编辑器打开”

模型浏览器
视图--->其他窗口---->实体数据模型浏览器 (如果在其他窗口里面没有看到实体模型浏览器,请你双击School.edmx)
需要把这个打开,实体模型浏览器才会出现


关系图:模型浏览器包含EDM的可视化图表。我们已经看到由EDM创建的默认视觉图。如果您的应用程序拥有大量实体,您也可以为一个EDM 创建多个图表。
实体类型:实体类型列出了所有映射到数据库表的类类型。
复杂类型:复杂类型是由EDM生成的包含存储过程,表值函数等的结果的类。这些复杂类型是用于不同目的的定制类。
枚举类型:枚举类型列出在实体框架中用作Enum的所有实体。
关联:关联列出实体类型之间的所有外键关系。
函数导入:函数导入列出将被映射到存储过程,表值函数等的所有函数。存储过程和表值函数将被用作函数而不是EF中的实体。
.Store:存储表示数据库模式(SSDL)。
Entity Framework 二的更多相关文章
- Entity Framework二、 模型优先 ,ObjectContext类
https://www.cnblogs.com/ejiyuan/archive/2009/05/27/1490786.html 1.ObjectContext 封装.NET Framework和数据库 ...
- Entity Framework (二) 查询
待完善-------------------------------------- ----------- base 关键字用于从派生类中访问基类的成员: 调用基类上已被其他方法重写的方法. 指定创建 ...
- entity framework 新手入门篇(1)-建立模型
entity framework是微软官方免费提供给大家的一套ORM(Object Relational Mapping对象关系映射)解决方案.它不仅可以帮助我们解决数据缓存的问题,还能在最小的开销下 ...
- Entity Framework 程序设计入门二 对数据进行CRUD操作和查询
前一篇文章介绍了应用LLBL Gen生成Entity Framework所需要的类型定义,用一行代码完成数据资料的读取, <LLBL Gen + Entity Framework 程序设计入门& ...
- C# ORM—Entity Framework 之Code first(代码优先)(二)
一.Entity Framework Code first(代码优先)使用过程 1.1Entity Framework 代码优先简介 不得不提Entity Framework Code First这个 ...
- Entity Framework Code First (二)Custom Conventions
---------------------------------------------------------------------------------------------------- ...
- Entity Framework学习笔记(二)----CRUD(1)
请注明转载地址:http://www.cnblogs.com/arhat 这篇文章老魏和大家分享一下Entity Framework的CRUD操作,在这之前呢,老魏先说一下老魏对EF的一个整体的认识, ...
- Mvc5+Entity Framework6 之二----在MVC中用Entity Framework实现基本的CRUD
目标:创建控制器和视图的代码,实现CRUD(创建,读取,更新,删除)功能 创建一个详细信息页 控制器为Students的Index页生成的代码排除Enrollments属性在外,因为该属性中关联着一个 ...
- Entity Framework笔记(二)
前几日学习了在VS2010Console项目中使用Entity Framework,并且使用Code First模式.通过编写Model类,来生成数据库对应的表.并且,往表中写入数据以及获取表中的所有 ...
随机推荐
- C# 批量生成随机密码,必须包含数字和字母,并用加密算法加密
要求:密码必须包含数字和字母 思路:1.列出数字和字符. 组成字符串 :chars 2.利用randrom.Next(int i)返回一个小于所指定最大值的非负随机数. 3. 随机取不小于chars长 ...
- jquery获取元素与屏幕高度距离
a. onscroll事件 scroll是css样式中overflow的一个值,意思是显示滚动条;当一个元素的实际高度超过他的最大高度是,只要设置了overflow为scroll b. $(..).s ...
- spring 依赖注入总结--为什么官方推荐构造器注入
一 公司小伙伴使用了构造器注入,说是spring的官方推荐.但是,我问了三个问题,他都答不出来,感觉能写篇博文. 官方为什么推荐构造器注入? 构造器注入和属性注入的区别是啥? 你知道有几种注入方式吗? ...
- small zhishi
\\192.168.1.201\d$\Data 访问远程计算机文件资源管理器
- iis win7 注册
http://blog.sina.com.cn/s/blog_7ed5a8080100rinj.html vs2010默认的是4.0框架,4.0的框架是独立的CLR,和2.0的不同,如果想运行4.0的 ...
- div居中方法总结
在日常开发过程中,我们会经常使用到div居中来处理布局,今天我就把我在开发过程中,遇到的div居中处理方法总结一下,方便日后查看! 1. 水平居中:给div设置一个宽度,然后添加marg ...
- OpenLayers 3 给features 添加手势
map.on('pointermove',function(e){ var pixel = map.getEventPixel(e.originalEvent); var hit = map.hasF ...
- Csharp: TreeView 初始化设置默认选择节点
/// <summary> /// 设置查找的节点为选定节点 /// 涂聚文 /// 2013-07-15 /// </summary> /// <param name= ...
- vue1.0 与 Vue2.0的一些区别 及用法
1.Vue2.0的模板标记外必须使用元素包起来: eg:Vue1.0的写法 <!DOCTYPE html> <html> <head> <meta chars ...
- CSS快速入门
一.概述 层叠样式表;可以对HTML的元素,进行控制,使HTML的元素展现的效果和位置更好; 二.基本语法 css规则由两个部分构成:选择器和语句 语句规则: 1.css选择器的名称区分大小写;属性名 ...