下图为一个已经创建好的数据库表关系

实体数据模型的创建过程

在Visual Studio项目中,右键程序集菜单,选择【添加】-》【新建项】,在【添加新项窗口】中选择【ADO.NET实体数据模型】,如下图

在【实体数据模型向导】窗口中选择【来自数据库的EF设计器】

然后选择数据库连接,如果没有的话,可以点击新建一个连接

然后选择数据库对象

现在a School.edmx文件被添加到了项目中,在这个文件中包含了school_schema数据库中表的实体类

创建实体数据模型时自动生成的配置文件

<?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><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" /><provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider></providers></entityFramework>
<connectionStrings><add name="SchoolSchemaEntities" connectionString="metadata=res://*/School.csdl|res://*/School.ssdl|res://*/School.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=127.0.0.1;user id=root;password=root;persistsecurityinfo=True;database=school_schema&quot;" providerName="System.Data.EntityClient" /></connectionStrings></configuration>

因为我使用的是MySQL,所以你要进行上面的操作的话需要安装一下组件,如果是MSSQL的话,请自行忽略,操作过程都是一样的

  • 【MySQL for Visual Studio】
  • 【Connector/Net】

如果遇到如下图中的错误,你可以手动添加MySql.Data.Entity.EF6.dll(位于MySQL Connector Net的安装目录中)

然后添加配置文件,然后再重新进行以上操作。

<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider>

DbContext

在创建实体数据模型的过程中,VS为我们生成了一个SchoolSchemaEntities类(该名称是在实体数据模型向导窗口数据库连接设置的时候设定的),它继承自DbContext(数据库上下文)。DbContext是 Entity Framework中很重要的一部分,它是实体类和数据库之前的一道桥梁。

数据库上下文的功能:

  • EntitySet: 数据库表的实体映射集合,形如是DbSet。
  • Querying:将 LINQ-to-Entities查询转换为SQL查询发送给数据库。
  • Change Tracking: 跟踪从数据库查询的实体中发生的更改。
  • Persisting Data:根据实体状态对数据库执行插入、更新和删除操作。
  • Caching: DbContext在默认情况下进行第一级缓存。它存储在上下文类的生命周期中检索的实体。
  • Manage Relationship: DbContext还可以通过CSDL、MSL和SSDL在数据库先行或模型先行方法中管理关系,或者在代码优先的方法中使用。
  • Object Materialization:DbContext将原始表数据转换为实体对象。

实例化DbContext

using (var db = new SchoolSchemaEntities())
{//数据操作...
}

将DbContext转换成ObjectContext

using (var db = new SchoolSchemaEntities())
{var objectContext = (db as System.Data.Entity.Infrastructure.IObjectContextAdapter).ObjectContext;
}

原文:
http://www.entityframeworktutorial.net/EntityFramework5/create-dbcontext-in-entity-framework5.aspx
http://www.entityframeworktutorial.net/EntityFramework4.3/dbcontext-vs-objectcontext.aspx

转载于:https://www.cnblogs.com/yangsofter/p/create-dbcontext.html

Entity Framework入门教程:创建实体数据模型相关推荐

  1. ASP .NET MVC 之Entity Framework入门教程及源码

    本文主要的目的是 1. 说明Entity Framework Power Tools如何使用. 2. Entity Framework  快速门 实验环境: OS: Windows Server 20 ...

  2. ADO.NET Entity Framework如何:使用实体数据模型向导(实体框架)

    本主题演示如何使用实体数据模型向导来生成 AdventureWorks 销售 .edmx 文件以及将 Visual Studio 项目配置为使用实体框架. 此模型和配置将在任务相关的各个实体框架主题中 ...

  3. ef6 oracle 存储过程,Entity Framework入门教程(14)---DbFirst下的存储过程

    EF6中DbFirst模式下使用存储过程 我们已经知道EF可以将L2E或Entity SQL的查询语句自动转换成SQL命令,也可以根据实体的状态自动生成Insert/update/delete的Sql ...

  4. ADO.NET Entity Framework 入门示例向导(附Demo程序下载)

    ADO.NET Entity Framework 入门示例向导(附Demo程序下载) ADO.NET Entity Framework 是.Net Framework 3.5 SP1 引入的实体框架, ...

  5. ADO.NET Entity Framework 入门示例

    ADO.NET Entity Framework 是.Net Framework 3.5 SP1 引入的实体框架,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据.实体框架Entit ...

  6. 我的WCF4 Rest Service及Entity Framework with POCO之旅(三)——用Entity Framework和POCO Template实现数据模型及存储...

    既然这个系列标题中都含有Entity Framework和POCO,这两者若到第三篇还不出现那就太奇怪了.本文将介绍如何使用Entity Framework和POCO来实现数据模型的创建以及数据存储. ...

  7. Zend Framework 入门教程(简体中文版)

    Zend Framework 入门教程(简体中文版) Getting Started With the Zend Framework Author:Rob Allen, www.akrabat.com ...

  8. Entity Framework加载相关实体——Explicit Loading

    上一回我们在<Entity Framework加载相关实体--Lazy Loading>分析了Lazy Loading,这一回我们来分析一下在关闭Lazy Loading的情况下,如果显式 ...

  9. Entity Framework加载相关实体——Eager Loading

    在前面两回我们分别分析了Lazy Loading和Explicit Loading,这一回我们来分析一下Eager Loading. 在某些情况下,我们可能事先知道要需要加载某些实体的相关实体,这时我 ...

最新文章

  1. B - The Suspects POJ - 1611
  2. 武汉东方7神话服饰有限公司
  3. python安装教程mac-Mac 安装python 3.*新版本的详细步骤
  4. java正则表示判断。是否以某个关键字结尾的
  5. 中文分词器分词效果的评测方法
  6. 20150110--魔术方法魔术常量+面向对象-02
  7. 使用宝塔面板进行wordpress建站
  8. 成信大c语言答案P239.C,2011秋季江苏省计算机二级C语言试题与答案.doc
  9. Mybatis-Plus:Sql 注入器(扩展BaseMapper)
  10. 中国IP对讲产品市场深度研究分析报告
  11. 用Python实现《沉默的真相》3万+弹幕情感分析
  12. 计算机网络基础(TCP/IP)
  13. 微信小程序图片懒加载(自定义组件)
  14. 苹果微信换行怎么打_苹果手机微信怎么加密,教你几招快速加密
  15. Linux驱动-platform设备驱动
  16. 游拍为什么显示服务器升级,4399版游拍直播
  17. 网吧服务器软件维护合同范本,网吧电脑维护合同范本
  18. FL Studio20最详细的注册教程 附二十位序列号
  19. 雨伞16骨好还是24骨好_雨伞骨数多好还是少好
  20. Windows遇到的图片查看问题。

热门文章

  1. OpenStack云第五天
  2. 你为什么高考会考砸?-论出题侧重点其实是故意的
  3. Java EE的三层架构
  4. 查看hive中某个表中的数据、表结构及所在路径
  5. ajax请求flask以后得到的响应查看
  6. 正则替换让一部分内容保持不变
  7. leetcode: 树
  8. 计算机系统 过程调用
  9. 吴恩达深度学习一:神经网络
  10. OpenGL uniform变量赋值的三种方法