【C#】ORM框架

ORM提供了实现持久化层的另一种模式,它采用映射元数据来描述对象关系的映射,使得ORM中间件能在任何一个应用的业务逻辑层和数据库层之间充当桥梁。

Java典型的ORM框架有个:Hibernate,mybatits,speedframework

        ORM的方法论基于三个核心原则:

           简单:以最基本的形式建模数据

           传达性:数据库结构被任何人都能理解的语言文档化

           精准性:基于数据模型创建正确标准化了的结构

ORM框架:为了解决面型对象与关系数据库存在的互不匹配的现象的框架。

 

概括起来 : 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单来说将程序中的兑现自动持久化到关系数据库中那么,到底如何实现持久化呢?一种简单的反感是采用硬编码的方式(jdbc操作sql方式),为每一种可能的数据库访问操作提供单独的方法。这种方法存在很多缺陷,所有使用ORM框架(为了解决面型对象与关系数据库存在的互不匹配的现象的框架)来解决。
---------------------




 Net环境下比较流行的ORM框架对比

       个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是Spring+Struts+Hibernate,除了在学习基础知识的时候被告知可以使用JDBC操作数据库之外,大量的书籍中都是讲述使用Hibernate这个ORM工具来操作数据。

       在.NET中操作数据库的方式有多种,除了最直接的方式就是使用ADO.NET之外,还可以使用NHibernate这个Hibernate在.NET中的实现ORM,如果你对第三方的ORM持怀疑态度,你还可以使用来自微软的实现、根正苗红的Linq或者EntityFramework


       大部分从早期就开始使用.NET开发的程序员可能对ADO.NET有种迷恋,使用ADO.NET可以充分将我们早期的SQL知识发挥得淋漓尽致,并且出于对性能的考虑,有些人对.NET中的ORM还保持一种观望态度,包括我自己也是这种态度。不过即使在实际开发中不用,并不代表我们不能去了解和比较这些技术,任何事物的出现和消亡总有其原因的,我们可以了解它们的优点和长处。所以本人抽出了几个周末的时间分别用NBear、NHibernate、GentleNet,IBatis.Net和SubSonic来实现对数据库单表数据的创建、读取、更新和删除操作,也就是所谓的CRUD(C:Create/R:Read/U:Update/D:Delete)。

转载于:https://www.cnblogs.com/lixiaochong/p/9802810.html

### C# ORM Frameworks Comparison and Usage ORM (Object-Relational Mapping) 是一种编程技术,用于转换数据之间的对象模型和关系数据库模型。在 C# 中,有多种流行的 ORM 框架可供开发者选择。以下是几种常见的 C# ORM 框架及其特点: #### Entity Framework Entity Framework (EF) 是微软官方支持的一个开源 ORM 框架。它提供了强大的功能来简化开发人员与数据库交互的过程。 - **优点**: 提供 Code First、Database First 和 Model First 的开发模式;内置迁移工具可以帮助管理数据库的变化[^1]。 - **缺点**: 对于复杂查询的支持可能不如原生 SQL 那样高效,在处理大规模数据集时性能可能会受到影响。 ```csharp using (var context = new BloggingContext()) { var blogs = context.Blogs.ToList(); } ``` #### Dapper Dapper 是由 Stack Overflow 开发并维护的一个轻量级微 ORM 库。它的设计目标是提供快速的数据访问能力而无需牺牲灵活性。 - **优点**: 性能极高,几乎接近手动编写 ADO.NET 代码的速度;简单易用,适合执行复杂的自定义查询语句。 - **缺点**: 不像 EF 这样的全功能 ORM,缺少许多高级特性如懒加载等。 ```csharp public class Dog { public int? Age { get; set; } public Guid Id { get; set; } } connection.Query<Dog>("select * from dogs where age = @Age", new { Age = 1 }); ``` #### NHibernate NHibernate 是 Hibernate Java 版本的 .NET 移植版,是一个成熟且全面的功能丰富的持久化解决方案。 - **优点**: 支持广泛的映射选项以及缓存机制;非常适合大型企业应用中的长期项目需求。 - **缺点**: 学习曲线陡峭,配置较为繁琐,对于初学者来说上手难度较大。 ```xml <class name="Customer"> <id name="Id"/> <property name="Name"/> </class> ``` 每种框架都有其特定的应用场景,因此选择合适的 ORM 工具取决于具体项目的实际需要和技术栈偏好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值