Entity Framework入门教程:创建实体数据模型
下图为一个已经创建好的数据库表关系
实体数据模型的创建过程
在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="server=127.0.0.1;user id=root;password=root;persistsecurityinfo=True;database=school_schema"" 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入门教程:创建实体数据模型相关推荐
- ASP .NET MVC 之Entity Framework入门教程及源码
本文主要的目的是 1. 说明Entity Framework Power Tools如何使用. 2. Entity Framework 快速门 实验环境: OS: Windows Server 20 ...
- ADO.NET Entity Framework如何:使用实体数据模型向导(实体框架)
本主题演示如何使用实体数据模型向导来生成 AdventureWorks 销售 .edmx 文件以及将 Visual Studio 项目配置为使用实体框架. 此模型和配置将在任务相关的各个实体框架主题中 ...
- ef6 oracle 存储过程,Entity Framework入门教程(14)---DbFirst下的存储过程
EF6中DbFirst模式下使用存储过程 我们已经知道EF可以将L2E或Entity SQL的查询语句自动转换成SQL命令,也可以根据实体的状态自动生成Insert/update/delete的Sql ...
- ADO.NET Entity Framework 入门示例向导(附Demo程序下载)
ADO.NET Entity Framework 入门示例向导(附Demo程序下载) ADO.NET Entity Framework 是.Net Framework 3.5 SP1 引入的实体框架, ...
- ADO.NET Entity Framework 入门示例
ADO.NET Entity Framework 是.Net Framework 3.5 SP1 引入的实体框架,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据.实体框架Entit ...
- 我的WCF4 Rest Service及Entity Framework with POCO之旅(三)——用Entity Framework和POCO Template实现数据模型及存储...
既然这个系列标题中都含有Entity Framework和POCO,这两者若到第三篇还不出现那就太奇怪了.本文将介绍如何使用Entity Framework和POCO来实现数据模型的创建以及数据存储. ...
- Zend Framework 入门教程(简体中文版)
Zend Framework 入门教程(简体中文版) Getting Started With the Zend Framework Author:Rob Allen, www.akrabat.com ...
- Entity Framework加载相关实体——Explicit Loading
上一回我们在<Entity Framework加载相关实体--Lazy Loading>分析了Lazy Loading,这一回我们来分析一下在关闭Lazy Loading的情况下,如果显式 ...
- Entity Framework加载相关实体——Eager Loading
在前面两回我们分别分析了Lazy Loading和Explicit Loading,这一回我们来分析一下Eager Loading. 在某些情况下,我们可能事先知道要需要加载某些实体的相关实体,这时我 ...
最新文章
- B - The Suspects POJ - 1611
- 武汉东方7神话服饰有限公司
- python安装教程mac-Mac 安装python 3.*新版本的详细步骤
- java正则表示判断。是否以某个关键字结尾的
- 中文分词器分词效果的评测方法
- 20150110--魔术方法魔术常量+面向对象-02
- 使用宝塔面板进行wordpress建站
- 成信大c语言答案P239.C,2011秋季江苏省计算机二级C语言试题与答案.doc
- Mybatis-Plus:Sql 注入器(扩展BaseMapper)
- 中国IP对讲产品市场深度研究分析报告
- 用Python实现《沉默的真相》3万+弹幕情感分析
- 计算机网络基础(TCP/IP)
- 微信小程序图片懒加载(自定义组件)
- 苹果微信换行怎么打_苹果手机微信怎么加密,教你几招快速加密
- Linux驱动-platform设备驱动
- 游拍为什么显示服务器升级,4399版游拍直播
- 网吧服务器软件维护合同范本,网吧电脑维护合同范本
- FL Studio20最详细的注册教程 附二十位序列号
- 雨伞16骨好还是24骨好_雨伞骨数多好还是少好
- Windows遇到的图片查看问题。