首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2022年了有哪些值得推荐的.NET ORM框架?

EF/EF Core Entity Framework (EF) Core 是轻量化、扩展、开源和跨平台版的常用 Entity Framework 数据访问技术,EF Core 是适用于 .NET 的现代对象数据库映射器...Dapper通过扩展IDbConnection提供一些有用的扩展方法去查询您的数据库。 主要特点:高性能、易排查、易运维、灵活可控。...ActiveRecord一样,它支持对象和数据库表之间的密切关系。 SubSonic一样,它支持使用 T4 模板生成 poco 类(仅限 V5)。...RDBMS 无关的类型包装器,该包装器 SQL 保持高度亲和性,公开直观的 API,生成预测的 SQL 并干净地映射到断开连接和数据传输对象 (DTO) 友好、普通的旧C# 对象 (POCO)。...(这个库不应该是您查询的性能瓶颈。) 用于安全执行 CRUD 操作和查询使用参数)并以强类型方式检索这些查询结果的非常简单的方法。 您的数据模型一起工作,而不会强迫您更改您的类。

5.9K11

2022年了有哪些值得推荐的.NET ORM框架?

EF/EF Core Entity Framework (EF) Core 是轻量化、扩展、开源和跨平台版的常用 Entity Framework 数据访问技术,EF Core 是适用于 .NET...Dapper通过扩展IDbConnection提供一些有用的扩展方法去查询您的数据库。 主要特点:高性能、易排查、易运维、灵活可控。...ActiveRecord一样,它支持对象和数据库表之间的密切关系。 SubSonic一样,它支持使用 T4 模板生成 poco 类(仅限 V5)。...RDBMS 无关的类型包装器,该包装器 SQL 保持高度亲和性,公开直观的 API,生成预测的 SQL 并干净地映射到断开连接和数据传输对象 (DTO) 友好、普通的旧C# 对象 (POCO)。...(这个库不应该是您查询的性能瓶颈。) 用于安全执行 CRUD 操作和查询使用参数)并以强类型方式检索这些查询结果的非常简单的方法。 您的数据模型一起工作,而不会强迫您更改您的类。

3.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C# 数据操作系列 - 11 NHibernate 配置和结构介绍

    前言 今天是NHibernate的第二篇内容,通过上一篇的内容,我们初步了解了NHibernate的创建和使用。这一篇,我继续探索NHibernate背后的秘密。嗯,就是这样。 1....它们可能只是一些普通的POCO,仅仅是ISession中关联起来了。只要ISession关闭了,这些对象就可以被分离出来然后可以在应用层的任意地方使用。...实例状态 在NHibernate中,一个持久化的对象有三种不同的状态,依据持久化上下文之间的关系不同,其中ISession就是一个持久化上下文。...这一节,将带领大家看一下NHibernate中我们常用的配置,因为配置项有很多,但一大部分通常情况都遇不到使用它的时候。...max_fetch_depth 最大递归深度,表示一次查询中直接加载的导航属性深度。默认是不直接加载导航属性,基于延迟加载的逻辑,由实际使用时才从数据库中加载数据。

    1.2K20

    第五章:使用QueryDSLSpringDataJPA实现查询返回自定义对象

    本章目标 基于SpringBoot平台完成SpringDataJPAQueryDSL整合查询返回自定义对象的两种方式。...QueryDSL & Projections 下面我们开始编写完全基于QueryDSL形式的返回自定义对象方法,代码如下所示: /** * 根据QueryDSL查询 * @return...bean方法第一个参数需要传递一个实体的泛型类型作为返回集合内的单个对象类型,如果QueryDSL查询实体内的字段DTO实体的字段名字不一样时,我们就可以采用as方法来处理,为查询的结果集指定的字段添加别名...QueryDSL & Collection 下面我们采用java8新特性返回自定义结果集,我们查询仍然采用QueryDSL形式,方法代码如下所示: /** * 使用java8新特性Collection...Stream还有很多其他的方法,有兴趣的小伙伴可以自行GitHub去查看。

    4.4K40

    NHibernate实践模式

    NHibernate实践模式 NHibernate是一款非常优秀的O/R mapping的开源框架,再还没有.net的时候它已经存在于java环境中。...,实体类 ,class文件),支持一对多,多对一,多对多的关系,默认生成对这些表的CURD操作,包括多表脊联操作(select,insert,update,delete),也可以通过xml文件的配置作自定义查询...1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 5.基本配置完成,下面就是开始写代码了 代码实践模式...另外如果需要对业务逻辑的抽象操作在这里扩展它的方法。     开发一个AbstractRepository实现IRepository这个接口的CRUD操作。...总结 使用O/R mapping确实能够提高开发效率,减少了开发过程中产生的低级bug,对新手很容易上手,对整个项目的层次更加明显,耦合度降低。方便扩展,很好的隔离变化。

    80840

    盘点 .NET 比较流行的开源的ORM框架

    支持 Join 查询、Union all 、Subquery 支持配置查询 支持 DbFirst 从数据库导入实体类,或使用生成工具。...初期开发过程中吸取了NBearMySoft的一些精华并加入新思想,之后参考EF Lambda语法进行大量扩展。 经过数十个版本的更新迭代发布全新v2.0版本,支持动态列/表、分库/分表等。...查询接口类似于 LINQ。您可以使用 Chloe.ORM 通过 lambda 查询 LINQ 之类的数据并执行任何操作(查询 | 组查询 | 聚合查询 | 插入 | 批量更新 | 批量删除)。...EF提供变更跟踪、唯一性约束、惰性加载、查询事物等。 开发人员使用Linq语言,对数据库操作如同操作object对象一样省事。 EF有三种使用场景: 1、从数据库生成Class。...(又名异步)(V6) 严格未修饰的 POCO 或归属的几乎 POCO 一起使用。 易于配置,包括开箱即用的流畅配置。

    4K41

    在 Java Spring 应用中使用 ASP.NET Core Identity 的数据库进行用户认证

    在 Java Spring 应用中使用 ASP.NET Core Identity 的数据库进行用户认证 使用 NHibernate 创建 Asp.Net Core 应用 ASP.NET Core Identity...Identity 定义了一套完善的、扩展的数据表结构, 存储用户、角色、权限等信息, 以及一套完善的用户/角色/权限管理 API 。...根据 NHibernate.AspNetCore.Identity 中的说明, 创建一个示例项目, 需要注意的问题主要有: 使用 NHibernate.AspNetCore.Identity 提供的 sql...语句创建数据表, 而不是使用 NHibernate 的 Schema Export 来建表, 这样可以更加准确的控制数据库; 为了和 Java 的 Spring 项目能够使用同样的用户(即: 使用 ....Net Identity 创建用户/管理, Spring 应用使用用户名/密码进行登录), 创建了一个自定义的 PasswordHasher 作为示例, 将密码用 SHA-256 进行散列存储, 仅作为参考

    1.2K30

    c# 常用框架整理

    SuperSocket http://supersocket.codeplex.com/ SuperSocket 是 一个轻量级的扩展的 Socket 开发框架,可用来构建一个服务器端 Socket...该项目使用纯 C# 开发,易于扩展和集成到已有的项目。只要你的已有系统是使用.NET开发的,你都能够使用 SuperSocket来轻易的开发出你需要的Socket应用程序来集成到你的现有系统之中。...主要用于领域对象DTO之间的转换、数据库查询结果映射至实体对象。...它拥有一个SQL工厂用来创建自定义查询、DataView构建助手和卓越的性能和完善的文档。...它功能完整且有详细的功能自定义,不过使用默认的选项就足够好用了。 .NET Charts 一款类似 PieChart, StackBar, LineChart的C#开源图表组件。

    4.8K10

    Fluent NHibernate之旅二--Entity Mapping

    如果你要体验NHibernate的强大,首先你就要学会配置,包括SessionFactory和Mapping的配置。今天跟上一篇一样,会使用传统方式和 NHibernate 进行讲解。...本节内容: 简单实体映射 使用自定义类型映射实体属性 NHibernate的实体映射(Entity Mapping)做的非常好,虽然不是完美,但一些我们经常使用的,基本上已经都支持了,而且配置也相对比较简单...一、简单实体映射 为了配合今后的教程,我们以一个简单的电子商务平台说起。...Map(Expression> expression):Id类似,对应NHibernate中的property,我这里只是简单的映射,还有很多特性,在今后的教程中会慢慢使用...二、使用自定义类型映射实体属性 NHibernate支持我们用自定义的类型来映射属性,但因为我是初学,我真的不会,当然我在网上找到了相关的资料,在此也不多说,就说说Fluent的方式吧,在我映射自定义属性的时候

    1K90

    NHibernate 缓存

    一级缓存测试 一级缓存缓存无需配置, 默认支持, 因此, 在使用 session 查询对象, 如果仅仅是根据 id 加载指定的对象, 需要使用 session 的 Get 或 Load 方法, 这样可以充分利用...2、测试 Get Load 方法 session 提供了 Get 和 Load 两个方法, 这两个方法有什么区别呢?...注意: 如果查询时不想使用一级缓存, 可以 StatelessSession 对象, 和 Session 对象用法一样, 只是该对象没有一级缓存。...NHibernate 的二级缓存是可以扩展的, NHibernate.ControlLib 提供了几个实现, 分别适用于不同的场景: NHibernate.Caches.MemCache NHibernate.Caches.Prevalence..., 如果两个查询相同, 但是指定的 CacheRegion 不同, 则也会从数据库查询数据。

    59911

    C#——Nhibernate探索

    类库拥有对应的XML,没找到具体使用该XML的方法。所以暂时不去理他。 NHibernate.pdb应该是没有用的。估计是作者忘记删除了。...为了保险起见,我们上网查询一下。 查询结果: 查询结果是,他们俩是【文件智能提示功能】用的。...可以顺利使用。  结语 这是一场Nhibernate探索之旅,结果是非常顺利的配置成功了。共耗时2小时。...为什么说是探索之旅呢,因为,我也是首次配置Nhibernate,我平常更多的是使用Entity Framework。 文中使用了一些推断,猜测的词语。那是因为,真的是在推断的。...我并不清楚那几个点的原理和含义,因为我没看Nhibernate的原代码。 虽然本文是讲述,配置Nhibernate;但我更想讲述的是,面对未知的框架入手学习和使用的方法。

    48930

    NHibernate 缓存

    一级缓存测试 一级缓存缓存无需配置, 默认支持, 因此, 在使用 session 查询对象, 如果仅仅是根据 id 加载指定的对象, 需要使用 session 的 Get 或 Load 方法, 这样可以充分利用...2、测试 Get Load 方法 session 提供了 Get 和 Load 两个方法, 这两个方法有什么区别呢?...注意: 如果查询时不想使用一级缓存, 可以 StatelessSession 对象, 和 Session 对象用法一样, 只是该对象没有一级缓存。...NHibernate 的二级缓存是可以扩展的, NHibernate.ControlLib 提供了几个实现, 分别适用于不同的场景: NHibernate.Caches.MemCache NHibernate.Caches.Prevalence..., 如果两个查询相同, 但是指定的 CacheRegion 不同, 则也会从数据库查询数据。

    44110

    .NETer们,你真的应该了解下EF Core3.x了!

    NHibernate SqlSugar Dos.ORM Dapper PetaPoco EntityFramework EntityFrameworkCore 其中NHibernate是我使用过的第一个...一方面O/RM设计的目标只是简化Sql,另一方面来说,使用O/RM性能差更多是使用的问题,而不是框架的问题。没有低性能的框架,只有不会用的开发者!...(为配合.Net5,EFCore下一个版本也叫EFCore5) (1)Sql索引支持 数据查询时,通过控制linq语句顺序,可以做到走索引,现在EFCore在Code Fitst时,在ModelCreating...(4)内置数据转换器 使用O/RM开发的小伙伴儿,基本上都离不开AutoMapper,因为总会有些数据在存储和程序中的类型不一致,现在EFCore中直接内置了数据转换器,还支持自定义模式,原生支持让性能更高使用更轻松...以上是EFCore中相对其他O/RM框架的一些新特性和优势,此外要在开发中应用好EFCore,还有蛮多需要学习的,比如数据初始化、Linq查询、复杂查询、延迟加载、惰性加载、级联删除、内置假删除,还有分布式环境下的数据一致性

    1K10

    SQL Server字符串左匹配

    但是如果我们使用的前后都加%的方式,是没办法用到索引进行快速查询的,所以很多情况下我们使用左匹配的方式。...使用左匹配的好处是可以使用到SQL Server中对该字段建立的索引,使得查询效率很高,但是不好的SQL语句仍然会导致索引无法使用。...假设我们现在有个表YCMRSALE,其中有个字段MATNR存储了料号信息,如果我们要从这个表中查询出以AB开头的料号,如果使用NHibernate,那么我们常用的写法有: //QueryOver的写法...但是如果用NHibernate就要麻烦点了,我们必须要判断用户输入的字符串里面是否有特殊转移符,如果有,那么就需要进行替换,而且C#查询语句也有所不同。...,所以无法使用索引,所以查询速度很慢。

    71210

    NHibernate总结

    现在的项目中数据访问使用的是NHibernate的一个ORM框架,小弟也是在后期加入项目组,之前对NHibernate就一直没有接触过,所以一直在学习NHibernate,都是一些很基础的一些东西,写出来总结一下...NHibernate不仅仅管理.NET 类到数据库表的映射(包括.NET 数据类型到SQL 数据类型的映射),还提供数据查询和获取数据的方法,大幅度减少我们开发时人工使用SQL和ADO.NET处理数据的时间...NHibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。并请记住NHibernate作为数据库访问层,是你的程序紧密集成的。...开始使用NHibernate 我们亲自动手,一步一步实现一个NHibernate简单程序来,我只实现了简单的增删改查功能。...查询语言(HQL)。

    91740

    Fluent NHibernate之旅(四)-- 关系(上)

    IDUser的ID是一致的,所以我们要使用Foregin来获取User的ID。...Foreign的用法先前版本有一点不同,需要指定propertyName。...很多关联方法都是NHibernate很类似的,比如Cascade,Cascade.All代表的是cascade="all",代表的是无论什么操作,都会同时操作关联对象。...我们的一对一简单映射也说完了,同时也完成了Component的映射,接下来说说延迟加载 一对一延迟加载 细心的朋友一定会发现我们的output出来的Sql语句,使用的是联合查询,但有时对我们来说,只需要...User就可以了,我不需要查询UserDetail,或许你会说,使用以下方式来进行延迟加载: HasOne(u => u.Detail).Cascade.All().LazyLoad

    1.2K60
    领券