实战-数据访问层
数据访问层仅仅负责管理数据库与业务逻辑层之间的通讯,不负责业务逻辑。
技术上我们采用Entity Framework ,它是微软开发的基于ADO.NET的ORM(Object/Relational Mapping)框架。
Entity Framework的主要特点:
1. 支持多种数据库(Microsoft SQL Server, Oracle, and MySQL);
2. 能很好地支持表,视图和存储过程;
3. 提供Visual Studio集成工具,进行可视化操作;
创建ADO.NET 实体数据模型项目
在项目上点击右键,添加->新建项
选择"ADO.NET 实体数据模型"
从数据库生成,新建连接,选择数据源
填写连接需要的数据库信息后,点击下一步
注意:只选择"在模型中加入外键列"
可以看到新生成了两个文件"App.Config"和"Model1.edmx":
"App.Config"里面是数据库连接字符串
"Model1.edmx" 里面是数据实体类和访问数据库的上下文
注意:Model1.edmx文件是Entity Framework自动生成的,不做修改,因为每次更新会覆盖。
修改ADO.NET 实体数据模型项目
每次修改实体模型的时候,都全选(ctrl+A)并删掉所有实体,然后在Model1.edmx文件空白处上点击右键,选"从数据库更新模型"
选择需要的表和视图,点击完成即可。
分析总结
我们将系统需要的基础类放在"Framework"文件夹中,所有的实体数据都需要继承IBaseEntity接口,所有的数据库表操作都需要继承BaseRepository抽象类,所有视图操作都需要继承BaseViewRepository抽象类
下面我们以SysException单表的增删改为例,进行介绍:
这里使用了分部类(partial class)对实体数据SysException进行扩展,加入自定义的属性,使用SysExceptionMetadata类对SysException进行数据验证,以保障数据的完整性和正确性。
数据访问层中的SysExceptionRepository执行数据库中的增删改查操作。
以上我们完成了数据访问层的设计,此架构的代码实现,请参考www.langben.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构