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); ...
随机推荐
- angularjs中的时间格式化过滤
本地化日期格式化: ({{ today | date:'medium' }})Nov 19, 2015 3:57:48 PM ({{ today | date:'short' }})11/19/15 ...
- 分享牛人就是的volatilekeyword
volatile作用 一个定义为volatile的变量是说这变量可能会被意想不到地改变.这样,编译器就不会去如果这个变量的值了. 精确地说就是.优化器在用到这个变量时必须每次都小心地又一次读取这个变量 ...
- ckediter一些小的问题解决办法
上传图片后,不能看到缩略图. 解决的方法是: BaseDir = "";Thumbnails.Dir = BaseDir + "_thumbs/"; 改为 Th ...
- phalcon builder get raw sql
$this->modelsManager->createBuilder()->from('table')->where('a = "a"')->lim ...
- JQuery基础知识--方便忘记时查看
第一次写博客,不多说废话,实用为先.如有不对,请多指正. JQuery api 第一步引入JQuery库. <script type="text/javascript" sr ...
- com.netflix.hystrix.contrib.javanica.exception.FallbackDefinitionException: fallback method wasn't found: serviceError([class java.lang.String]) 异常
在使用spring cloud 的 Hystrix 后可能会遇到 如下截图错误: 后台代码如下: 找了好一会经过分析参数方法和原方法参数步一致造成: 修改后代码如下:
- 【BZOJ3651】网络通信 LCT
[BZOJ3651]网络通信 Description 有一个由M 条电缆连接的 N 个站点组成的网络.为了防止垄断,由 C 个公司控制所有的电缆,规定任何公司不能控制连接同一个站点的两条以上的电缆(可 ...
- 小团队Git协作流程
git和svn 最大的差异在于git是分布式的管理方式而svn是集中式的管理方式. 集中式 集中式代码管理的核心是服务器,所有开发者在开始coding之前必须从服务器获取代码,然后开发,最后解决冲突, ...
- 第二课 创建http server
nodejs 不需要单独安装服务器软件 tomcat .apache. iis 看下面的代码创建了http服务器,并输出一些简单的响应内容 //引入http 模块 var http = require ...
- java Filter的简单使用
java web中的过滤器的简单使用.直接上代码.1.web.xml <?xml version="1.0" encoding="UTF-8"?> ...