EntityFramework6.X之概述
实体框架(EF6.X)是一种对象/关系映射器(O/R Mapping解决方案),一套支持开发面向数据的软件应用技术,采用特定域对象和关系数据形式使用数据,而不必考虑存储这些数据的基础数据库表和列,上层的用户端提供EntityClient、OjectContext及LinqToEntity支持

利用抽象化数据结构的方式,将每个数据库对象转换成应用程序对象(Entity),而数据字段都转换为属性(Property),关系则转换为结合属性(Association),使得数据库E/R模型完全的转成对象模型,EF中常见命名空间如下:
|
名称空间 |
说明 |
|
System.Data |
主要名称空间,包含了与实体相关的异常类,如MappingException |
|
System.Data.Common.CommandTrees |
包含由.NET数据提供程序共享的类,DbProviderServices类是一个抽象类,必须有EF提供程序实现 |
|
System.Data.Entity.Design |
包含由设计器用于创建EDM(实体数据模型)文件的类 |
|
System.Data.EntityClient |
指定.NET数据提供程序访问EF的类,EntityConnection,EntityCommand,EntityReader |
|
System.Data.Objects |
包含用于查询和更新数据库类,OjectContext类封装与数据库的连接,用于创建、读取、更新和删除方法的网关,ObjectQuery类表示对存储器的一个查询 |
|
System.Data.Objects.DataClasses |
包含实体需要的类和接口 |
Schema
数据逻辑层分为三方面:概念层结构(Conceptual Schema)、映射层结构(Mapping Schema )、存储层结构(Storage Schema )
l 概念层结构(Conceptual Schema)
CSDL将应用程序数据表示为概念模型中的一组实体和关系,定义了对象模型(Object Model),让上层应用可以面向对象方式访问数据,该层由CSDL(概念架构定义语言)定义
注意:
1) 所有实体都必须具有键,若数据库中未设置主键的表,那么系统会相应的推断实体的一个键
2) 仅包含外键、表示数据库中连接表之间的多对多关系的表在概念模型中没有对应的实体
l 映射层结构(Mapping Schema)
负责将上层的概念层结构及下层存储层机构中的成员结合在一起,以确认数据的来源与流向,该层由MSL(映射规范语言)把CSDL中的实体类型定义映射到SSDL上
l 存储层结构(Storage Schema )
负责与数据库管理系统DBMS中的数据表做实体对应,依不同数据库与数据结构,而显露出实体的数据结构体,和Provider一起,让数据可以输入正确的数据来源,或由正确的数据来源取出,该层由SSDL(存储架构定义语言)定义,描述了数据库表及其关系的结构
Entity Framework 主要是以Entity Model(EDM)为主体系架构如下:

Code-First
自从Entity Framework 4.1开始Code-First就是作为设计领域模型的主要方式,Code-First可以通过函数设计领域类与数据库中表的映射

当我们创建一个实体类且在通过dbset映射时,EF会将根据实体类中属性类型映射到数据库中的表中的相应类型
EntityFramework6.X之概述的更多相关文章
- MVC5 网站开发实践 概述
目录 MVC5 网站开发实践 概述 MVC5 网站开发实践 1.建立项目 MVC5 网站开发实践 2.后台管理 MVC5 网站开发实践 2.1.管理员登陆 MVC5 网站开发实践 2.2.管理 ...
- 3万字长文概述:通俗易懂告诉你什么是.NET?什么是.NET Framework?什么是.NET Core?
[转载]通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? 什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的 ...
- 【AR实验室】ARToolKit之概述篇
0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- .Net 大型分布式基础服务架构横向演变概述
一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...
- [C#] 进阶 - LINQ 标准查询操作概述
LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- Java消息队列--JMS概述
1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送 ...
随机推荐
- 手机自动化测试:appium源码分析之bootstrap十五
手机自动化测试:appium源码分析之bootstrap十五 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...
- 【R.转载】apply函数族的使用方法
为什么用apply 因为我是一个程序员,所以在最初学习R的时候,当成"又一门编程语言"来学习,但是怎么学都觉得别扭.现在我的看法倾向于,R不是一种通用型的编程语言,而是一种统计领域 ...
- python的MySQLdb模块在linux环境下的安装
开始学习python数据库编程后,在了解了基本概念,打算上手试验一下时,卡在了MYSQLdb包的安装上,折腾了半天才解决.记录一下我在linux中安装此包遇到的问题.系统是ubuntn15.04. 1 ...
- AFNetworking 用法详解
之前一直使用ASIHttpRequest 做网络请求 ,后来新公司用AFNetWorking ,经过一段时间学习总结一下二者的优缺点: 1.AFNetWorking的优缺点 优点: 1.维护和使用者比 ...
- iOS原生地图与高德地图的使用
原生地图 1.什么是LBS LBS: 基于位置的服务 Location Based Service 实际应用:大众点评,陌陌,微信,美团等需要用到地图或定位的App 2.定位方式 1.GPS定位 2. ...
- Instrument详解
Instruments用户指南介绍Instruments是应用程序用来动态跟踪和分析Mac OS X和iOS代码的实用工具.这是一个灵活而强大的工具,它让你可以跟踪一个或多个进程,并检查收集的数据.这 ...
- JAVA压缩图片 服务器端压缩图片 原创
@RequestMapping(value = "/uploadImage", method = RequestMethod.POST) @ResponseBody public ...
- ArrayList 如何完美去除空值
package sourceCode.ArrayList; import java.util.ArrayList; import java.util.List; public class arrayL ...
- xmlplus 组件设计系列之零 - xmlplus 简介
xmlplus 是什么 xmlplus 是博主写的一个 JavaScript 框架,用于快速开发前后端项目. xmlplus 基于组件设计,组件是基本的构造块.评价组件设计好坏的一个重要标准是封装度. ...
- 【2017-04-25】winform公共控件、菜单和工具栏、Tab和无边框窗体制作
一.公共控件 1. Button 按钮 + 布局 - AutoSize 按钮尺寸自动适应里面内容的长度 - Location 位置 - Margin 控件与控件外边距 - S ...