EntityFramework 学习 一 创建实体数据模型 Create Entity Data Model

1.用vs2012创建控制台程序

2.设置项目的.net 版本

3.创建Ado.net实体数据模型

3.打开实体数据模型向导Entity Framework有四种模型选择 来自数据库的EF设计器(Database First)、空EF设计器(Model First)、空CodeFirst模型(Code First)、来自数据库的CodeFirst模型(Code First)

4. 选择已存在的数据库连接

5.下一步显示数据库中所有的表、视图和存储过程

备注:
Pluralize or singularize generated object names:如果数据库中表的名称是复数,则变为单数形式。如果SchoolDB 数据库中有Students表,则实体集将是单数的Student,实体的关系如果是一对多、多对多的关系,则关系将是复数形式,例如Student和Course表示多对多的关系,Student实体集中将有复数的属性名Courses表示Course的集合
Include foreign key columns in the model:包含外键属性明确的表示外键。例如,Student与Standard表示一对多的关系,所以一个Student和一个Standard关联,为了表示这一关系,Student实体中包含StandardId导航属性,如果不选该项,Student实体仅包含Standard属性,而不包含StandardId属性
6.Import selected stored procedures and functions into entity model:自动创建函数引入存储过程和函数
7.点击Finish,项目将增加School.edmx文件,双击School.edmx文件,将展现表对应的实体以及关系

8.EDM在配置文件中添加链接字符串
<connectionStrings>
<add name="SchoolDBEntities" connectionString="metadata=res://*/School.csdl|res://*/School.ssdl|res://*/School.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=SchoolDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
实体-表的映射
EDM中的每一个实体都与数据库中的表对应

Context上下文和实体类型
在EDM中,每个实体数据模型都会自动生成一个上下文类、与数据库中表对应的实体类,展开School.edmx,有两个重要文件{EDM Name}.Context.tt and {EDM Name}.tt:

School.Context.tt:使用T4模板文件生成上下文类,该类继承DbContext

School.tt T4模板为数据看中的表生成实体类
public partial class Student
{
public Student()
{
this.Courses = new HashSet<Course>();
} public int StudentID { get; set; }
public string StudentName { get; set; }
public Nullable<int> StandardId { get; set; }
public byte[] RowVersion { get; set; } public virtual Standard Standard { get; set; }
public virtual StudentAddress StudentAddress { get; set; }
public virtual ICollection<Course> Courses { get; set; }
}
EDM Designer: 描绘概念模型,它包含实体和关系,它看起来很像数据库表的结构,但是你可以添加、合并和删除列,你甚至可以添加对象到模型上,可以有与数据库表不同的列,然而,在模型上的变化都会影响到存储模型。你可以通过XML文件查看EDM

EntityFramework 学习 一 创建实体数据模型 Create Entity Data Model的更多相关文章
- Entity Framework Tutorial Basics(5):Create Entity Data Model
Create Entity Data Model: Here, we are going to create an Entity Data Model (EDM) for SchoolDB datab ...
- 创建实体数据模型【Create Entity Data Model】(EF基础系列5)
现在我要来为上面一节末尾给出的数据库(SchoolDB)创建实体数据模型: SchoolDB数据库的脚本我已经写好了,如下: USE master GO IF EXISTS(SELECT * FROM ...
- Create Entity Data Model
http://www.entityframeworktutorial.net/EntityFramework5/create-dbcontext-in-entity-framework5.aspx 官 ...
- Entity Framework 教程——创建实体数据模型
创建实体数据模型: 本文将带你创建实体数据模型(EDM)SchoolDB数据库和理解基础建设模块. 实体数据模型(EDM)是用于描述实体之间关系的一种模型,以下将使用Visual Studio 201 ...
- Entity Framework入门教程:创建实体数据模型
下图为一个已经创建好的数据库表关系 实体数据模型的创建过程 在Visual Studio项目中,右键程序集菜单,选择[添加]->[新建项],在[添加新项窗口]中选择[ADO.NET实体数据模型] ...
- Model First:创建实体数据模型(ADO.NET 实体数据模型)
Microsoft Entity Framework是一个对象关系映射工具(Object Relational Mapping ,O/RM)工具.它可以让你从一个数据库自动地生成数据接入层.实体框架免 ...
- EF,ADO.NET Entity Data Model简要的笔记
1. 新建一个项目,添加一个ADO.NET Entity Data Model的文件,此文件会生成所有的数据对象模型,如果是用vs2012生的话,在.Designer.cs里会出现“// Defaul ...
- Entity Framework的核心 – EDM(Entity Data Model) 一
http://blog.csdn.net/wangyongxia921/article/details/42061695 一.EnityFramework EnityFramework的全程是ADO. ...
- 创建实体数据模型需要注意的,不要选单复数形式,否则AddObject出问题
//这个测试太不容易了,总是出错,addInfo 方法进去,最后调用context对象.AddObject(),也就是context.AddObject(entitySetName, entity); ...
随机推荐
- 当半年不碰的webpack + vuejs项目重见天日时遇到的神坑!
半年前的Vuejs项目,由于webpack环境一直是1.0的(现在是webpack4.0),倒不是说不会升级或者不敢升级. 总而言之.在我再次启动这个项目时: npm run dev / npm ru ...
- Selection Problem (选择问题)
在一个由n个元素组成的集合中,第i个“顺序统计量(order statistic)”是该集合中第i小的元素.例如,在一个由n个元素组成的集合中,最小值是第1个顺序统计量,最大值是第n个顺序统计量.而“ ...
- Cocos2D-X2.2.3学习笔记5(UI系统)
前言: 1.字体 2.标签 3.菜单 4.进度条 5.计时器 Cocos2d-x中得UI控件没有几个.在游戏制作的过程中也不须要什么UI.即使有些复杂的UI,那都得我们自己来封装的.比方.关卡选择. ...
- git 和 svn 的比较
Git VS SVN 1 .功能 主体功能 Git SVN 1.从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上. 1 .SVN是基于关系数据库的(BerkleyDB)或一系列二进制 ...
- CentOS6.9 下编译安装MySQL5.7.19
官网:https://www.mysql.com/ 下载地址:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.19.tar.gz 一.准备工作 ...
- 在Ubuntu下利用Eclipse开发FFmpeg配置小结
首先需要编译FFmpeg得到头文件和lib文件,参见:在Ubuntu下编译FFmpeg 选择File-New-C Project 选择Executable下的Empty Project,右侧选择Lin ...
- java数据结构-Vector
1 Vector基础实现为数组 object[] synchronized线程安全 2 扩容使用 System.arraycopy(original, 0, copy, 0,Math.min(ori ...
- iOS ARC也会有内存泄露
本文转载至 http://blog.csdn.net/allison162004/article/details/38753219 iOS提供了ARC功能,很大程度上简化了内存管理的代码. 但使用A ...
- poj2115[扩展欧几里德]
C Looooops Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22260 Accepted: 6125 Descr ...
- 【BZOJ3333】排队计划 树状数组+线段树
[BZOJ3333]排队计划 Description Input Output Sample Input 6 2 160 163 164 161 167 160 2 3 Sample Output 6 ...