实体框架(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之概述的更多相关文章

  1. MVC5 网站开发实践 概述

    目录 MVC5 网站开发实践  概述 MVC5 网站开发实践  1.建立项目 MVC5 网站开发实践  2.后台管理 MVC5 网站开发实践  2.1.管理员登陆 MVC5 网站开发实践 2.2.管理 ...

  2. 3万字长文概述:通俗易懂告诉你什么是.NET?什么是.NET Framework?什么是.NET Core?

    [转载]通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? 什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的 ...

  3. 【AR实验室】ARToolKit之概述篇

    0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...

  4. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  5. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

  6. .Net 大型分布式基础服务架构横向演变概述

    一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...

  7. [C#] 进阶 - LINQ 标准查询操作概述

    LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...

  8. 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  9. Java消息队列--JMS概述

    1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送 ...

随机推荐

  1. Android自定义View之音频条形图

    2016-04-12 17:52 76人阅读 评论(2) 收藏 举报  分类: Android(26)  版权声明:本文为博主原创文章,未经博主允许不得转载. 新建项目,新建MusicRectangl ...

  2. 解析新浪微博表情包的一套js代码

    本文出自本人原创,转载请注明出处 /** * Created by Lemon on 2017/4/6. *//** * return 解析后的值 * analysis 参数 * obj.value: ...

  3. 面试题(二)—Java基础(下)

    一.进程和线程 进程 (1)正在运行的程序,是系统进行资源分配和调用的独立单位. (2)每一个进程都有它自己的内存空间和系统资源. 线程 (1)是进程中的一条执行路径. (2)一个进程如果只有一条执行 ...

  4. 关于C++ 循环

    有的时分,可能需求屡次履行同一块代码.通常情况下,句子是顺序履行的:函数中的第一个句子先履行,接着是第二个句子,依此类推. 编程言语供给了答应更为杂乱的履行途径的多种操控结构. 循环句子答应咱们屡次履 ...

  5. 最小函数值 洛谷P2085

    题目描述:          有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个( ...

  6. 在 redhat 6.4上安装Python 2.7.5

    在工作环境中使用的是python 2.7.*,但是CentOS 6.4中默认使用的python版本是2.6.6,故需要升级版本. 安装步骤如下: 1,先安装GCC,用如下命令yum install g ...

  7. memcached分布式缓存

    1.memcached分布式简介 memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能.Memcache集群主机不能够相互通信传输数据,它的“分布式”是基于客户端的程序逻辑算 ...

  8. Elasticsearch搜索之best_fields分析

    顾名思义,best_field就是获取最佳匹配的field,另个可以通过tie_breaker来控制其他field的得分,boost可以设置权重(默认都为1). 下面从宏观上来讲的简单公式: scor ...

  9. Unity Debug类

    静态变量 developerConsoleVisible 报告是否开发控制台是可见的.开发控制台不能出现使用: isDebugBuild 在构建设置对话框中有一个叫做"发展构建"复 ...

  10. Android NDK开发之从环境搭建到Demo级十步流

    写在正文之前: 几个月没有更新博客,感觉有点生疏了,所以说不能断,一断人就懒. 其实这几个月也并不是什么事也没有做,俺可是时刻想着今年的任务呢,10本书,30篇博文...,这几个月间断性的也是在学习中 ...