Entity_Framework_学习
### Entity Framework 学习知识点概览 #### 一、Entity Framework 概述 - **Entity Framework** 是微软推出的一种**对象关系映射器**(Object-Relational Mapper, ORM),允许开发者使用面向对象的方式进行数据库操作,而无需直接编写SQL语句。通过这种方式,可以大大减少与数据库交互的代码量,并提高应用程序的可维护性和可扩展性。 #### 二、EF基本概况 - 在.NET Framework SP1中引入的**实体框架**,旨在帮助开发人员通过面向概念模型编程来创建数据访问应用程序,而非直接面向底层的关系型存储架构。其主要目的是减少代码量并简化维护工作。 - **概念架构定义语言文件(.csdl)**:定义了概念模型,即应用程序中实体和关系的表示。 - **存储架构定义语言文件(.ssdl)**:定义了存储模型,即数据如何在底层数据库中存储。 - **映射规范语言文件(.msl)**:定义了存储模型与概念模型之间的映射关系。 - 实体框架使用这些基于XML的模型文件将对概念模型的操作转换为数据源中的操作。 - **语言集成查询(LINQ)** 支持为查询提供针对概念模型的编译时语法验证。 #### 三、ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager 类介绍 - **ObjectContext**: 代表与特定数据源的连接,提供了加载、跟踪和提交对数据库的更改的能力。 - **ObjectQuery**: 表示执行的查询,通常通过 LINQ to Entities 或 Entity SQL 创建。 - **ObjectStateEntry**: 用于表示实体对象的状态,如新增、修改或删除。 - **ObjectStateManager**: 负责管理实体对象的状态,处理对象的跟踪、状态变更等。 #### 四、LINQ TO Entities - **LINQ to Entities** 是一种使用 LINQ 查询语法访问实体数据模型的方式。它允许开发人员以面向对象的方式编写查询表达式,从而更自然地与.NET编程环境集成。 - 例如,使用 LINQ to Entities 可以轻松地过滤、排序和分组数据集。 #### 五、EntitySQL - **EntitySQL** 是一种与存储无关的 SQL 方言,可以直接操作概念模型中的实体。它支持诸如继承和关系等 EDM 功能,使得查询更为灵活。 - 通过 EntitySQL,开发人员可以构建复杂的查询,同时保持与具体数据库的独立性。 #### 六、ObjectQuery 查询及方法 - **ObjectQuery** 类提供了查询实体数据模型的功能。它支持多种查询方法,包括但不限于筛选、排序和分页等。 - 例如,`Where`, `OrderBy`, `Skip` 和 `Take` 等方法可用于构建更复杂的查询。 #### 七、EntityClient - **EntityClient** 是一种用于与实体数据模型进行交互的客户端工具包。它提供了对实体框架功能的访问,包括查询、更新和事务管理等。 - EntityClient 主要用于需要跨平台或多数据库支持的场景。 #### 八、基本操作:增加、更新、删除、事务 - 实体框架支持常见的 CRUD 操作(Create, Read, Update, Delete),并通过事务管理确保数据完整性。 - 使用 EF 的 `ObjectContext` 类可以方便地执行这些操作,如使用 `AddObject`, `Attach`, `DeleteObject` 方法。 #### 九、支持复杂类型的实现 - EF 支持复杂类型,允许在实体中嵌套其他实体或非标量类型。 - 复杂类型可以用来表示如地址、联系方式等复合数据结构。 #### 十、存储过程支持 - **存储过程** 是预编译并存储在数据库中的 SQL 代码块。EF 支持调用存储过程,并可以将其映射到实体框架中。 - 存储过程可以提高性能并增强安全性。 #### 十一、使 EF 支持 Oracle9i - 尽管 EF 主要设计用于 Microsoft SQL Server,但它也支持其他数据库系统,如 Oracle。 - 通过安装相应的 Oracle 数据提供程序,可以实现在 EF 中使用 Oracle 数据库。 #### 十二、改善 EF 代码的方法 - 随着项目的复杂度增加,优化 EF 代码变得尤为重要。 - 优化策略包括但不限于:懒加载、批量加载、使用视图模型代替实体等。 #### 总结 - Entity Framework 作为一种强大的 ORM 工具,极大地简化了数据访问层的开发工作,减少了与数据库交互的代码量,提高了应用程序的可维护性和可扩展性。 - 然而,它也有一些限制和挑战,如性能问题、复杂查询的实现难度等。因此,在选择是否使用 EF 时,需要根据项目的具体需求和团队的技术背景综合考虑。
剩余63页未读,继续阅读
- h1546878222012-08-15有些抽象,看不是太懂
- 粉丝: 10
- 资源: 68
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- python005-基于Python爬虫的网络小说数据分析系统的设计与实现.zip
- vs2015 udp 广播 demo
- 创维42L20HW(8DA6)软件数据.rar
- gcc15交叉编译工具链windows版,用于编译龙芯应用,gcc version 15.0.0 20241119 (experimental) (GCC)
- python004-基于python的抑郁症患者看护系统.zip
- 基于TensorFlow2的图像分类模型训练预测项目(支持ResNet和MobileNet等主干网络,热力图生成、可视化模型).zip
- C语言程序设计-1-4章-课后习题答案(1).zip
- python003-python电影数据分析及可视化系统建设.zip
- gcc15交叉编译工具链windows版,支持32位和64位windows软件编译,gcc version 15.0.0 20241111 (experimental) (GCC)
- STM32汇编语言点亮led灯