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)
实体数据模型.edmx文件#
.edmx文件介绍#
.edmx文件表示一个实体数据模型
实体数据模型是一种使用XML格式的纯文本文本,以.edmx为扩展名
实体数据模型内容包含存储模型、概念模型、这两种模型的映射关联信息
.edmx文件内容组成#
概念模型(CSDL,Conceptual Schema Definition Language):
负责定义实体模型和类结构
存储模型(SSDL,Store Schema Definition Language):
负责底层的存储模型的结构
映射(MSL,Mapping Specification Language):
负责存储模型和概念模型的内容映射
使用文本编辑器打开.edmx文件可以看到详细的SSDL、CSDL、MSL
概念模型(CSDL)组成#
存储模型(SSDL)组成#
基本内容与CSDL的类似,但是SSDL中的内容对应的是真实的数据库结构描述
SSDL中主要有XML元素:
映射关系(MSL)组成#
Visual Studio模型工具#
Visual Studio中使用 模型设计工具(Designer)和 文本编辑器进行操作.edmx文件
数据关联关系设置(EF Designer)#
设置表一对多的关联和设置表多对多的关联#
实体数据模型与类文件的关系#
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字进行收取费用」许可协议进行许可。
本文来自博客园,作者:重庆熊猫,转载请注明原文链接:https://www.cnblogs.com/cqpanda/p/16775036.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现