http://www.entityframeworktutorial.net/EntityFramework5/create-dbcontext-in-entity-framework5.aspx

官网的教程https://msdn.microsoft.com/en-us/data/jj206878

Here, we are going to create an Entity Data Model (EDM) for SchoolDB database and understand the basic building blocks.

Entity Data Model is a model that describes entities and the relationships between them. Let's create first simple EDM for SchoolDB database using Visual Studio 2012 and Entity Framework 6.

1. Open Visual Studio 2012 and create a console project.

Go to PROJECT menu of visual studio -> {project name} properties - and make sure that the project's target framework is .NET Framework 4.5, as shown below.

2. Now, add Entity Data Model by right clicking on the project in the solution explorer -> Add -> click New Item

and select ADO.NET Entity Data Model from popup, Give the new item the name 'School' and click Add button.

VS2015中默认是找不到这个的,http://stackoverflow.com/questions/23046081/missing-ado-net-entity-data-model-on-visual-studio-2013

http://www.cnblogs.com/chucklu/p/5109747.html自己写了一篇,参照这个,在iso镜像文件中手动安装

3. Entity Data Model Wizard in VS2012 opens with four options to select from:

EF Designer from database for database first approach,

Empty EF Designer model for model first approach,

Empty Code First model and Code First from database for Code-First approach.

We will focus on the database-first approach in the basic tutorials so select EF Designer from database option and click Next.

4. You can choose from your existing DB Connections or create a new connection by clicking on the 'New Connection' button.

We will use the existing DB connection to the SchoolDB Database.【这一步的前提是已经将数据库文件附加到sqlserver2012了】

This will also add a connection string to your app.config file with the default suffix with DB name.

You can change this if you want.  【根据需要选择是否在配置文件中保存敏感信息】

Click 'Next' after you set up your DB connection.

5. In this step, you need to choose the version of Entity Framework. We will use Entity Framework 6.0 in the basic tutorials so select Entity Framework 6.0 and click Next.

Note: If you have already installed the latest version of Entity Framework using NuGet manager as shown in the Setup Environment section then this step of the wizard will no longer appear since you have already installed Entity Framework.

6. This step will display all the Tables, Views and Stored Procedures (SP) in the database.

Select the Tables, Views and SPs you want, keep the default checkboxes selected and click Finish.

You can change Model Namespace if you want.

把Tables,Views,Stored Procedures and Functions全部勾选上

Note:

Pluralize or singularize generated object names checkbox singularizes an entityset name, if the table name in the database is plural.

For example, if SchoolDB has Students table name then entityset would be singular Student.

Similarly, relationships between the models will be pluralized if the table has one-to-many or many-to-many relationship with other tables.

For example, Student has many-to-many relationship with Course table so Student entity set will have plural property name 'Courses' for the collection of courses.

The second checkbox, Include foreign key columns in the model, includes foreign key property explicitly to represent the foreign key.

For example, Student table has one-to-many relationship with Standard table. So every student is associated with only one standard.

To represent this in the model, Student entityset includes StandardId property with Standard navigation导航 property.

If this checkbox is unchecked then it will only include the Standard property, but not the StandardId in the Student entityset.

The third checkbox, Import selected stored procedures and functions into entity model, automatically creates Function Imports for the stored procedures and functions.

You don't need to manually import this, as was necessary prior to Entity Framework 5.0.

7. After clicking on 'Finish', a School.edmx file will be added into your project.

Open EDM designer by double clicking on School.edmx. This displays all the entities for selected tables and the relationships between them as shown below:

EDM also adds a connection string in the config file as shown below.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<connectionStrings>
<add name="SchoolDBEntities" connectionString="metadata=res://*/School.csdl|res://*/School.ssdl|res://*/School.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=LUJUNTAO\MSSQLSERVER2012;initial catalog=SchoolDB;persist security info=True;user id=sa;password=123456;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>

In this way, you can create a simple EDM from your existing database.

Now, let's examine all the building blocks of generated EDM (School.edmx) as shown in the above figure.

Entity-Table Mapping:

Each entity in EDM is mapped with the database table.

You can check the entity-table mapping by right clicking on any entity in the EDM designer -> select Table Mapping.

Also, if you change any property name of the entity from designer then the table mapping would reflect that change automatically.

在EDM设计器中,右键选中某一个实体表,选择Table Mapping

就可以看到列映射,比如StudentID数据库中是int  映射到类中StudentID,类型是Int32

StudentName是varchar类型  映射出来是string类型

Context & Entity Classes:

Every Entity Data Model generates one context class and entity class for each DB table included in the EDM.

Expand School.edmx and see two important files, {EDM Name}.Context.tt and {EDM Name}.tt:

School.Context.tt: This T4 template file generates a context class whenever you change Entity Data Model (.edmx file).

You can see the context class file by expanding School.Context.tt.

The context class resides in {EDM Name}.context.cs file.

The default context class name is {DB Name} + Entities.

For example, the context class name for SchoolDB is SchoolDBEntities, then the context class is derived from DBContext class in Entity Framework. (Prior to EF 5.0 it had been derived from ObjectContext.)

School.tt: School.tt is a T4 template file that generates entity classes for each DB table.

Entity classes are POCO (Plain Old CLR Object) classes.

The following code snippet shows the Student entity.

 using System;
using System.Collections.Generic; public partial class Student
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
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; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Course> Courses { get; set; }
}

EDM Designer: EDM designer represents your conceptual model.

It consists of Entities, and associations & multiplicity between the entities.

Initially, it will look exactly like your database table structure but you can add, merge or remove columns, which are not required by your application from this designer.

You can even add a new object in this model, which can have columns from different database tables from context menu, as shown in the figure above.

Remember, whatever changes done here should be mapped with the storage model.

So you have to be careful, while making any changes in the designer.

You can open this EDM designer in XML view where you can see all the three parts of the EDM - Conceptual schema (CSDL), Storage schema (SSDL) and mapping schema (MSL), together in XML view.

Right click on School.edmx -> click 'Open with..', this will open a popup window.

Visual Studio cannot display the model in Design view and in XML format at the same time, so you will see a message asking whether it’s OK to close the Design view of the model.

Click Yes. This will open the XML format view. You can see the following XML view by toggling all outlining as shown below.

You can see SSDL content, CSDL content and C-S mapping content here.

If you expand SSDL and CSDL, each one has some common XML node under each schema node.

You don't need to edit the xml data because this can be accomplished easier in the Model Browser.

Learn about Model Browser in the next section.

Create Entity Data Model的更多相关文章

  1. 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 ...

  2. 创建实体数据模型【Create Entity Data Model】(EF基础系列5)

    现在我要来为上面一节末尾给出的数据库(SchoolDB)创建实体数据模型: SchoolDB数据库的脚本我已经写好了,如下: USE master GO IF EXISTS(SELECT * FROM ...

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

    1.用vs2012创建控制台程序 2.设置项目的.net 版本 3.创建Ado.net实体数据模型 3.打开实体数据模型向导Entity Framework有四种模型选择 来自数据库的EF设计器(Da ...

  4. Entity Framework的核心 – EDM(Entity Data Model) 一

    http://blog.csdn.net/wangyongxia921/article/details/42061695 一.EnityFramework EnityFramework的全程是ADO. ...

  5. EF,ADO.NET Entity Data Model简要的笔记

    1. 新建一个项目,添加一个ADO.NET Entity Data Model的文件,此文件会生成所有的数据对象模型,如果是用vs2012生的话,在.Designer.cs里会出现“// Defaul ...

  6. 关于VS2010“ADO.NET Entity Data Model模板丢失或者添加失败问题

    我最近在安装vs2010后,添加ADO.NET Entity 实体时发现,我的新建项里面并没有这个实体模型,后来我就在博问里面发表了问题,请求大家帮忙解决,悲剧的是少有人回应啊,呵呵,不过我还是在网上 ...

  7. VS2010中没有ado.net entity data model实体数据模型这一选项-解决办法

    前提先安装VS2010 SP1包. 解决办法: 1.从VS2010的安装盘目录下面的WCU\EFTools找到ADONETEntityFrameworkTools_chs.msi和ADONETEnti ...

  8. [转]Creating an Entity Framework Data Model for an ASP.NET MVC Application (1 of 10)

    本文转自:http://www.asp.net/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/creating-a ...

  9. How to: Use the Entity Framework Model First in XAF 如何:在 XAF 中使用EF ModelFirst

    This topic demonstrates how to use the Model First entity model and a DbContext entity container in ...

随机推荐

  1. iOS 开发中的问题

    错误提示: Your build settings specify a provisioning profile with the UUID “39642B69-0278-4265-8392-4B28 ...

  2. SQL Server中存储过程 比 直接运行SQL语句慢的原因

    问题是存储过程的Parameter sniffing     在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1. 存储过程只在创造时进行编译即可,以后每次执行存储过 ...

  3. JavaScript之isNaN()函数讲解

    定义和用法 isNaN() 函数用于检查其参数是否是非数字值. 语法 isNaN(x) 参数 描述 x 必需.要检测的值. 返回值 如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的 ...

  4. extern关键字的使用

    A.置于变量或者函数前,以标示变量或者函数的定义在别处,提示编译器遇到此变量和函数时在其他地方寻找其定义. B.可用来进行链接指定. 1.使用extern声明外部变量 1.1在一个文件内声明外部变量 ...

  5. C51关键字

    C51 中的关键字 关键字 用途 说明 auto 存储种类说明 用以说明局部变量,缺省值为此 break 程序语句 退出最内层循环 case 程序语句 Switch语句中的选择项 char 数据类型说 ...

  6. Ajax HTML, JS

    Ajax Request HTML <script></script>及外部的js文件,都需要 var scriptStrs = response.match(/\<[\ ...

  7. LCT小结

    LCT真是灵活好用… LCT的基本思想与树链剖分差不多,都是把树剖成一条条链,只不过LCT用的是SPLAY维护的,而且,SPLAY的链是会变化的,不像剖分是定死的. LCT最重要的操作就是access ...

  8. https://google-developers.appspot.com/chart/

    https://google-developers.appspot.com/chart/

  9. zoj 2358,poj 1775 Sum of Factorials(数学题)

    题目poj 题目zoj //我感觉是题目表述不确切,比如他没规定xi能不能重复,比如都用1,那么除了0,都是YES了 //算了,这种题目,百度来的过程,多看看记住就好 //题目意思:判断一个非负整数n ...

  10. IP TCP HTTP Socket的区别

    网络由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可 ...