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

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

支持 Join 查询、Union all 、Subquery 支持配置查询 支持 DbFirst 从数据库导入实体类,或使用生成工具。...初期开发过程中吸取了NBear与MySoft一些精华并加入新思想,之后参考EF Lambda语法进行大量扩展。 经过数十个版本更新迭代发布全新v2.0版本,支持动态列/表、分库/分表等。...您可以使用 Chloe.ORM 通过 lambda 查询 LINQ 之类数据并执行任何操作(查询 | 组查询 | 聚合查询 | 插入 | 批量更新 | 批量删除)。...您查询由 C# 编译器检查并允许轻松重构。 但是,它不像 LINQ to SQL 或实体框架那么重。...开源地址:https://github.com/linq2db/linq2db 九、Massive(国外) 一个小型、快乐、动态 .NET MicroORM 开源地址:https://github.com

3.9K41

Rafy 框架 - 实体支持只更新部分变更字段

Rafy 快一两年没有大更新了。并不是这个框架没人维护了。相反,主要是因为自己项目、以及公司在使用项目,都已经比较稳定了,也没有新功能添加。...但是最近因为外面使用了 Rafy 几个公司,找到我,提出了一些明确需求,期望我做一些相应升级。所以可能最近几个月,会陆续更新 Rafy 框架。...最近升级后,可能截止到明年,会陆续支持 NET5-6 上一些功能。 今天这篇博客,主要是记录了一个客户提出了多次需求:实体更新时,只更新改动字段。...Rafy 框架会管理好领域框架状态变更。事实上,这几年确实没有升级,而开发者也用得很好,很少有人关注。...但是这次客户提出意见,由于他们实体类中属性实在太多了,查看日志中更新语句时,较难定位具体已经修改属性。再加之,Rafy 接下来会添加一个只查询部分实体属性功能。所以就一并完成了。

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

.NET(C#)有哪些主流ORM框架,SqlSugar,Dapper,EF还是...

特点: 开源、免费 国内开发者开发、维护; 支持.NET Core; 支持主流数据库,如:SQL Server,MySql,Oracle,Sqlite等; 维护更新及时 推荐等级:★★★★☆ PetaPoco...特点: 开源、免费 推荐等级:★★★★☆ linq2db linq2db也是一款快速、轻量、类型安全POCO对象和数据库映射ORM框架。...从构架上来说,linq2db是对比如:Dapper、PetaPoco这个微ORM进一步封装,但它不像Entity Framework那样笨重。它没有实现状态跟踪,需要自己处理实体状态更改等。...特点: 开源、免费 批量写入 批量读/多重查询特性(我理解是在说Future?)...集成和扩展性 代码自动生成,减少代码和sql开发量,使开发人员摆脱开sql,ado.net和事务,缓存等底层 推荐等级:★★★☆☆ Massive Massive:小巧,动态微ORM框架

7.8K90

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

它支持 LINQ 查询、更改跟踪、更新和架构迁移。...EntityFramework-Plus - EF增强工具集,包括过滤器,审核,缓存,查询,批删除,批更新等。...主要特点: 支持 CodeFirst 模式,即便使用 Access 数据库也支持数据迁移; 支持 DbFirst 模式,支持从数据库导入实体类,或使用实体类生成工具生成实体类; 支持 深入类型映射,比如...查询接口类似于 LINQ。您可以使用 Chloe.ORM 通过 lambda 查询 LINQ 之类数据并执行任何操作(加入查询 | 组查询 | 聚合查询 | 插入 | 批量更新 | 批量删除)。...您查询由 C# 编译器检查并允许轻松重构。 但是,它不像 LINQ to SQL 或实体框架那么重。

5.7K11

在OQL上使用UPDLOCK锁定查询结果,安全更新实体数据

有时候我需要控制某条记录在我读取后就不许再进行更新,那么我就可以将所有要处理当前记录查询都加上更新锁,以防止查询后被其它事务修改.将事务影响降低到最小。...上面这个例子可能比较抽象,让我们来举一个实际例子。 假设有一个投资产品表,当我们查询到该产品记录后,要进行一系列判断,最后对该记录进行更新。该记录状态会影响到下一个人查询到此记录处理。...下面我们来看看用SOD框架OQL怎么处理。...db.Commit(); 上面的操作,首先在AdoHelper对象上开启事务,然后查询投资产品实体时候在With方法上加上 OQL.SqlServerLock.UPDLOCK 更新锁,接着进行复制业务处理...,然后更新实体记录,之后还有复杂其它业务操作,最后提交事务。

1.8K10

(PDF.NET框架实例讲解)将任意复杂SQL查询映射成实体

通常情况下我们ORM框架都是将单表或者视图映射成一个实体类,有时候也会将存储过程映射成实体类,如果处于系统移植性考虑,你不想写存储过程,那这些复杂SQL查询怎么映射成实体类?...实际上,不管是单表,视图,存储过程,SQLSERVER表值函数,自定义SQL查询,甚至是任意复杂SQL查询,都可以用一个SQL语句来表示,只要我们ORM框架能够实现将SQL语句查询结果映射成实体类...然后,弹出一个新窗口,进行生成实体有关设置: ? 注意勾选“SQL查询有效性”,并输入要映射实体类名称等信息,然后点击“确定”。 ?...自定义查询实体类跟普通PDF.NET实体类使用方式类似,都需要OQL表达式来操作,例如选取要使用字段,设置Where条件,这里为了简便,仅仅调用了OQL.Select()方法,选取查询出来全部列...除了可以通过本文说方式将SQL语句映射到实体类,还可以通过PDF.NET内置SQL-MAP技术来实现实体类映射,就像iBaits那样,但比iBaits简单很多,详细内容,请参看: PDF.NET数据开发框架

2.5K80

使用PDF.NET数据开发框架实体操作语言OQL构造复杂查询条件

PDF.NET数据开发框架(Pwmis Data develop Framework,http://www.pwmis.com/sqlmap) 是一套借鉴iBatis、Hibernate、Linq等数据访问框架而来轻量级数据开发框架...,主要特点是具有iBatis特点SQL-MAP功能和框架独特实体对象查询语言--OQL,下面我们使用OQL来构造一个复杂实体查询。...首先定义两个实体类:用户类和订单类,可以使用框架提供实体类生成器生成,下面是详细代码: /*   本类由PWMIS 实体类生成工具(Ver 4.1)自动生成  http://www.pwmis.com...IN 查询参数,实现了SQLIN子查询: oql.Select().Where(oql.Condition.AND(user.Sex ,"=",true).IN(user.UID, q_order)... IN ( SELECT UID  FROM Table_Order    Where OrderDate >= @CP1     ) OK,到此为止,我们可以使用我们OQL查询出真正实体集合了:

1.6K50

Jetpack组件之Room

使用@Database注解类应满足以下条件: 是扩展RoomDatabase抽象类。 在注释中添加与数据库关联实体列表。 包含具有0个参数且返回使用@Dao注释抽象方法。...然后,应用使用每个 DAO 从数据库中获取实体,然后再将对这些实体所有更改保存回数据库中。 最后,应用使用实体来获取和设置与数据库中表列相对应值。Room架构图如图所示。...,嵌套对象{entity=对象表user;parentColumn=当前表列名"id",entityColumn=user表列名"id",projection=接收一个数组,包括查询哪些字段{}}...long rowID = StudentDatabase.getInstance().getCache().save(cache); //返回int,这是删除行数,更新返回也是int,代表更新行数...当Room数据库中数据发生变化时 ,能够通过LiveData组件通知View层,实现数据自动更新

1.8K20

浅谈JPA优缺点_sql优点

总的来说,JPA包括以下3方面的技术: ORM映射元数据,JPA支持XML和JDK 5.0注解两种元数据形式,元数据描述对象和表之间映射关系,框架据此将实体对象持久化到数据库表中; JPAAPI,...用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐JDBC和SQL代码中解脱出来。...Datached状态,可以调用em.merge()方法,这个方法会根据实体id来更新数据库数据,这时实体类变成了Managed(托管)状态。 三.为什么要使用JPA?...JPA定义了独特JPQL(Java Persistence Query Language),JPQL是EJB QL一种扩展,它是针对实体一种查询语言,操作对象是实体,而不是关系数据库表,而且能够支持批量更新和修改...JPA底层使用关系数据库进行存储,因此具备关系数据库特点,例如事务性、数据完整性、并发访问、大数据量等。 与其他持久化技术相比,JPA有很大技术优势。表列出了JPA与其他持久化技术比较。

1.5K20

Jvm-Sandbox-Repeater 新增配置详解

Spring Data JPA 是 Spring 提供一套简化 JPA 开发框架(Criteria API还是太复杂了),按照约定好方法命名规则写 dao 层接口,就可以在不写接口实现情况下,实现对数据库访问和操作...同时提供了很多除了CRUD之外功能,如分页、排序、复杂查询等等。 3....解释分别如下: @Entity:标注用于实体类声明语句之前,指出该 Java 类为实体类,将映射到指定关系数据库表。...@Column:此注解不是必须,无此字段也会将字段映射到表列。...最终调用到了saveAndFlush()方法,这是框架自带方法:(源码如下) Step6:查询数据库 备注:app_name and environment 这里在提交时填写是 unknown,

91410

缓存查询(一)

准备查询发生在运行时,而不是在编译包含SQL查询代码例程时。通常,PREPARE紧跟在SQL语句第一次执行之后,但在动态SQL中,可以准备查询而不执行它。...生成缓存查询SQL查询语句包括: SELECT:SELECT缓存查询显示在其表目录详细资料中。如果查询引用了多个表,则会为每个被引用表列出相同缓存查询。...修改表定义会自动清除引用该表所有查询。在更新查询缓存元数据时,发出准备或清除命令会自动请求独占系统范围锁。系统管理员可以修改缓存查询锁定超时值。 创建缓存查询不是事务一部分。...管理门户为每个表列出了嵌入式SQL缓存查询,目录详细信息为每个表列出了具有这个类名缓存查询查询类型为嵌入式缓存SQL。...可以使用%GetImplementationDetails()方法来确定这些实体哪些实体由每个“?”特定准备字符。

1.2K20

欢迎使用开源持久化框架 MyBatis Enhance

Enhance还规划了多个数据表之间动态查询方式,这种方式可以让你体验到你在使用Java代码编写SQL语句,极大方便关联、聚合、多表查询字段等常用数据动作(1.0.2.RELEASE暂未支持)。...实体创建 根据对应数据库内表来创建实体,Enhance采用是Spring Data JPA形式来管理实体类,并且已经预先提供一些Annotation,数据实体(Entity)对应数据库内数据表...; // 根据主键更新数据实体 void update(T t) throws EnhanceFrameworkException; // 自定义sql更新数据 void updateBySql(String...,针对MyBatis Enhance框架来说,我单独配套编写了一个代码生成工具,能够把创建实体、Mapper等必须需要类自动化创建以及可以通过freemarker模版来完成自定义实体类创建,从而实现代码上真正快速开发...敬请期待DSL动态查询 Enhance内部默认支持了单表数据操作方法,但是我们平时在项目中多表查询是最普遍,我结合了QueryDSL动态查询框架优点将部分基础实现迁移到了Enhance框架内,极大方便了多表联合查询以及动态返回任意数据实体

1.3K30

核心技术靠化缘是要不来——自己动手写ORM框架

开源市场上JavaORM框架一个都不好用,所以花了几天时间自己撸了一个 OrmKids,欢迎大家下载学习。遇到问题请关注公众号进群大家一起讨论。...OrmKids 支持分库分表MySQL单表ORM框架,暂用于学习,后续会在生产环境进行检验 功能特性 代码简洁,没有任何依赖项,除了使用时需要用到MySQL driver 易于使用,无须复杂配置 提供自动创建表功能...常用多表操作一般都可以使用多条单表操作组合实现 在分库分表场合,很少使用多表操作 不使用外键,专注于sql逻辑 db.withinTx 对于复杂多表查询和批量数据处理,可以使用该方法。...Q 用户可以使用Q对象构建复杂SQL查询 其它数据库支持 暂时没有 实体接口 /** * 所有的实体类必须实现该接口 */ public interface IEntity { /**...extends IEntity> clazz; // 当前实体类 private Q q; // 查询sql private Object[] values; // 查询绑定参数

70720

使用 SpringBoot 整合 MyBatis 开发 开启驼峰映射功能

使用 SpringBoot 整合 MyBatis 开发时,发现从数据库中查询结果封装到javabean中,只要表中有下划线字段,就会出现null值 MyBatis默认是属性名和数据库字段名一一对应...,即 数据库表列:user_name 实体类属性:user_name 但是java中一般使用驼峰命名 数据库表列:user_name 实体类属性:userName 例如,在写注解式Mapper代码时:...id=#{resultId} limit 1") KunlunResultWithBLOBs findById(Long resultId); 上面的KunlunResultWithBLOBs对象值要想正常映射上...map-underscore-to-camel-case属性为true来开启驼峰功能: mybatis: mapper-locations: classpath:mapper/*.xml#注意:一定要对应mapper映射xml文件所在路径

2K20

Power BI 重大更新:字段参数详解 - 基础篇

Power BI 在 5 月迎来了重大更新,其中一个点就是:字段参数。 虽说是一个点,且在官方说明篇幅非常少,但是这个特性却意义重大而深刻。我们会用不同文章来说明这个特性各种特点。...体会如何从理论框架指导实践整个过程来体会万变不离其宗感觉。...构造完毕字段参数可以在 DAX 中改名,不会影响报表内容。 报表中透视表使用字段参数,将随着用户选择,动态决定实际参与表列或度量值。 多个字段会默认平铺展开。...以上,我们没有做任何一件与业务有关事,完全在一个抽象层面来实验和认知这个特性。其过程为: 基于模型理论框架,万变不离其宗。 推测新特性具备特征。 展开实验,验证想法。 归纳总结。...答案很简单,正确地学习 Power BI 就会形成一个体系;Power BI 再发布几乎任何特性都是对已有思维框架某些细节再实现以及对一些不完美的补充而已。

3.7K20
领券