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中的$q
先说说什么是Promise,什么是$q吧.Promise是一种异步处理模式,有很多的实现方式,比如著名的Kris Kwal's Q还有JQuery的Deffered. 什么是Promise 以前了解过 ...
- spring利用ApplicationListener自启动
近期在用mina获取server的数据,但没有和spring进行集成,就利用ApplicationListener实现了自启动 package com.gamesvr.minaenpo; import ...
- linux中查找文件并合并文件
find ./src -name '*.txt' -exec cat '{}' \; > test.txt
- 隐藏VS2013的反馈、通知和登录按钮
Visual Studio 2013的右上角有反馈.通知.登录.快速启动等按钮,在VS2013中没有选项可以设置为隐藏. 打开注册表(开始 -> 运行 -> regedit),展开到以下路 ...
- CSMA/CD解释与理解
1. CSMA/CD含义 CSMA/CD即载波监听多点接入/碰撞检测,此协议是使用在总线型网络中的,不同计算机是通过多点接入的方式连接在一起.协议的重点在于监听和碰撞检测. 2. 为什么要监听和碰撞检 ...
- Java多线程之~~~~synchronized 方法
在多线程开发中,总会遇到多个在不同线程中的方法操作同一个数据,这样在不同线程中操作这个数据不同的顺序 或者时机会导致各种不同的现象发生,以至于不能实现你预期的效果,不能实现一致性,这时候就能够使用 s ...
- Array的push与unshift方法性能比较分析
从原理就可以知道,unshift的效率是较低的.原因是,它每添加一个元素,都要把现有元素往下移一个位置.但到底效率差异有多大呢?下面来测试一下. 测试环境的主要硬件:CPU T7100(1.8G):内 ...
- react-native create-react-app创建项目报错SyntaxError: Unexpected end of JSON input while parsing near '...ttachment":false,"tar' npm代理
SyntaxError: Unexpected end of JSON input while parsing near '...ttachment":false,"tar' 错误 ...
- PHP中使用POST发送请求的常用方式
前提概要: 在PHP进行项目开发过程中,使用post发送请求的情况很多,以下总结了项目中主要用的两种方式. 总结下: 在我接触到的项目中用到第二种情况较多,比如写:短信接口.....总体来说比较简单便 ...
- 解决Class 'swoole_server' not found
1.看下cli模式是否可以正常工作,命令行下运行 php -r "echo php_sapi_name();" 这条命令就是在cli模式运行php语句,php -r就是run一条p ...