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方式进行开发

作者:重庆熊猫

出处:https://www.cnblogs.com/cqpanda/p/16775036.html

版权:本作品采用「不论是否商业使用都不允许转载,否则按3元1字进行收取费用」许可协议进行许可。

posted @   重庆熊猫  阅读(110)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示