重庆熊猫 Loading

Entity Framework教程-模型优先开发方式详解(Model First Development)

更新记录
转载请注明出处:
2022年10月14日 发布。
2022年10月10日 从笔记迁移到博客。

EF模型优先开发方式(Model First Development)概述

实体数据模型(Entity Data Model,EDM)是一种XML格式的纯文本文件

作用

实体数据模型用于描述数据结构,模型映射的不同类型的数据源

这样可以使得数据操作与底层的数据库进行进行脱钩,减少耦合

开发人员可以通过数据模型直接处理数据,避免接触具体数据库

EDM中的概念模型中的描述组成

3种数据结构分别是:

实体类型(Entity Type)

关联类型(Association Type)

属性(Property)

image

image

image

实体数据模型.edmx文件

.edmx文件介绍

.edmx文件表示一个实体数据模型

实体数据模型是一种使用XML格式的纯文本文本,以.edmx为扩展名

实体数据模型内容包含存储模型、概念模型、这两种模型的映射关联信息

.edmx文件内容组成

概念模型(CSDL,Conceptual Schema Definition Language):

负责定义实体模型和类结构

存储模型(SSDL,Store Schema Definition Language):

负责底层的存储模型的结构

映射(MSL,Mapping Specification Language):

负责存储模型和概念模型的内容映射

image

使用文本编辑器打开.edmx文件可以看到详细的SSDL、CSDL、MSL

image

概念模型(CSDL)组成

表示实体类型

image

表示联系类型

image

表示实体集合,内有实体和联系的描述
image

存储模型(SSDL)组成

基本内容与CSDL的类似,但是SSDL中的内容对应的是真实的数据库结构描述

SSDL中主要有XML元素:

表示一个实体容器,对应特定的数据源

image

表示具体实体的数据对象内容

image

表示具体的实体对象的内容

image

映射关系(MSL)组成

Visual Studio模型工具

Visual Studio中使用 模型设计工具(Designer)和 文本编辑器进行操作.edmx文件

数据关联关系设置(EF Designer)

设置表一对多的关联和设置表多对多的关联

image

实体数据模型与类文件的关系

DbContext类型

每一个实体数据模型都会建立DbContext类用来供应用程序进行数据库操作

使用该对象进行与数据库进行连接和具体的增删改查的操作

通过在DbContext子类中指定DbSet来对数据表进行操作

DbSeet类型

表示数据表的结构

一个DbSet对象表示映射的数据表和其实体数据内容的集合

实体数据模型.edmx文件存在的问题

使用.demx文件描述数据模型,可以使用EF Designer进行快速开发

通过集成DbContext和DbSet类进行支持数据库的操作

但是维护起来非常的麻烦,所以在EF的后来版本中出现了Code First的开发模式

建议:

在小型数据库开发、可视化开发中可以使用.edmx和EF Designer进行开发

大中型数据库开发、日后需要维护的数据库开发使用Code First方式进行开发

posted @ 2022-10-14 08:17  重庆熊猫  阅读(91)  评论(0编辑  收藏  举报