EF(Entity Framwork)结构

初次接触EF,看了一些资料,将自己对EF结构的理解记录如下:

EF的核心是EDM----实体数据模型(.edmx)。它由三部分组成:概念模型(.csdl文件)、存储模型(.ssdl文件)、映射规范(.msl文件)组成。

概念模型:在EF中就是指实体类.  public  class  类名{

                      属性1;

                        属性2;

                      ...}

存储模型:在EF中是指数据库中的实体(将各个实体的关系固定到表中的形式).

映射:将概念模型和存储模型连接起来,以便进行操作.
         即 :(概念模型) 实体.属性<---->(存储模型)实体.字段

了解EF要先了解以下概念,它表明了概念模型和存储模型的对应关系。括号里面的是存储模型,为方便理解作的具体说明
1:实体类: Entity。它的名字一般为所关联数据库表的表名。 它继承自EntityObject类。用于描述实体的属性,一个实体类都会定义一个或多个属性。

          (概念模型中:实体类的对象是表中的行)
2:实体集: ObjectQuery<实体>。一个或多个实体类构成实体集。

          (概念模型中:多个数据行构成的表)
3:实体容器: EntityContainer它继承自ObjectContext。 实体集定义在容器中。

          (概念模型中:多张表构成的数据库)
4:实体键 :EntityKey 就是指实体类中的属性名称。

          (概念模型中:是字段的集合。)

他们之间的包含关系是:   实体容器--->实体集----->实体类----->实体键
当我们在添加一个关联好的.Net Entity Date Model时,实体类和实体容器都自动生成了。

                               

时间: 2024-10-10 21:49:45

EF(Entity Framwork)结构的相关文章

记录一次BUG修复-Entity Framwork SaveChanges()失效

目录 一. 前言 二.问题背景 三.问题描述 四.问题解决步骤 六.总结 一. 前言 这是笔者在参与一个小型项目开发时所遇到的一个BUG,因为项目经验不足对Entity Framwork框架认识不足导致了这一BUG浪费了一天的时间,特此在这里记录.给自己一个警醒希望大家遇到相同问题能帮助到大家. 注:笔者水平有限,大家发现错误望批评指正. 二.问题背景 1.本次项目是一个ASP.NET MVC项目,因为项目比较小的关系,我们采用的是基本三层和仓储模式进行开发.2.使用的ORM框架是Entity

EF(Entity Framework)通用DBHelper通用类,增删改查以及列表

(1)通用类用法 其中 通用类名:DBhelper 实体类:UserInfo 1 //新增 2 DBHelper<UserInfo> dbhelper = new DBHelper<UserInfo>(); 3 UserInfo userinfo = new UserInfo(); 4 userinfo.Name = "1"; 5 dbhelper.Add(userinfo); 6 7 //根据条件查找列表 8 var entityes = dbhelper.F

Entity Framwork&mdash;&mdash;Left Join

在Entity Framework中使用left outer join 想必你们很多人都用过,但是为什么要那么用,我们一般也没去深究,这里稍微做一下探讨,不对的希望大家指正. 先准备我们的数据对象,这里使用最简单的one to many ,一个Category 对应多个Product,代码如下: class Category { public int CategoryId { get; set; } public string CategoryName { get; set; } } class

1.使用Entity Framwork框架常用的技术手段Code First 和Reverse Engineer Code First

提示:VS版本2013,  Entity Framwork版本5.0.0,Mysql数据库  使用Entity FrameWork的好处就不多说,直接上手如何使用.两种形式:1.将代码映射到数据库实体,使用的是Code First技术.2.将数据库实体转成代码,使用的是Reverse Engineer Code Fist技术. 一.Code First技术 1.建好项目,并加入一个名为CodeFirstDemo控制台应用程序项目. 2.配置.工具>>库程序包管理>>管理解决方案的N

MVC3+EF4.1学习系列(十)----MVC+EF处理树形结构

通过前几篇文章 我们处理了 一对一, 一对多,多对多关系 很好的发挥了ORM框架的做用 但是 少说了一种 树形结构的处理, 而这种树形关系 我们也经常遇到,常见的N级类别的处理, 以及经常有数据与类别挂钩.今天主要写下EF处理树形结构以及 MVC如何展示树形结构. 前面几篇的例子 一直用的是一个例子,内容是连贯的.这篇是完全单独的~ 先来说下工作中会遇到的常见场景 针对这几个场景来处理~ 1.类别 a.类别可以有无限级别 b.类别的最末端 不确定是第几级 某个节点 可以到二级 其他的节点 有可能

Entity Framwork(EF) 7——在现在数据库的甚而上开发MVC 新项目

一.开发背景: 由于老系统已经无法满足实际业务需求,需在现有数据库的甚而上开发新的项目. 二.困难点: 而EF默认情况下是要删除现有数据库表格后重新创建,这是不允许的.当你创建数据库对象时系统会提示“数据库中已存在名为 'XXXXX' 的对象” 三.解决方法: 1.创建测试数据库TEST. 2.创建数据库对象(在VS项目内). 3.将对象添加至DBContext(ApplicationDbContext). public DbSet<数据库对象类> 对象名 {get;set;} 4.在项目控制

Entity Framwork(EF) 7——在Controller内获取指定字段的值

一.开发背景: 在用户登录的时候,验证用户和密码是否正确.验证通过后将用户名和用户ID保存下来以便后续数据更新时使用. 二.用户验证方法: 1.创建DBContext 对象. ApplicationDbContext _context; //Controller构造函数        public FramController(ApplicationDbContext context)        {            _context = context;        } 2.查询数据

灵动思绪EF(Entity FrameWork)

参考页面: http://www.yuanjiaocheng.net/entity/mode-first.html http://www.yuanjiaocheng.net/entity/database-first.html http://www.yuanjiaocheng.net/entity/choose-development-approach.html http://www.yuanjiaocheng.net/entity/query-with-edm.html http://www.

EF1:MVC/EF(Entity Framewok) /First Migrations

1. 概念 Entity Framework: ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案.(此处只当理解为.NET 特色的数据库应用方案(O/R mapping),如hibernate, 此处暂且不做深入,有待日后补充学习).简单来说就是微软帮你连接了数据库的是一个实体框架,让你操作起来比较方便,不用过多去写SQLhelper并能和linq语句lamda表达式等结合起来,提高开发效率. Fir