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

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

支持 Join 查询、Union all 、Subquery 支持配置查询 支持 DbFirst 从数据库导入实体,或使用生成工具。...开发人员使用Linq语言,对数据库操作如同操作object对象一样省事。 EF有三种使用场景: 1、从数据库生成Class。 2、由实体生成数据库结构。...异步或同步,选择权您。(又名异步)(V6) 与严格未修饰的 POCO 或归属的几乎 POCO 一起使用。 易于配置,包括开箱即用的流畅配置。...更好的参数替换支持,包括从对象属性获取命名参数。 通过使用 DynamicMethod 生成消除 Linq 和快速属性分配来获得出色的性能。 查询语言是好的 ole SQL。...包括一个低摩擦的 SQL 构建器,使编写内联 SQL变得更加容易。 包括 T4 模板以自动为您生成 POCO 。(V5) 用于记录异常、安装值转换器和将列映射到没有属性的属性的挂钩。

3.9K41

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

主要特点: 支持 CodeFirst 模式,即便使用 Access 数据库也支持数据迁移; 支持 DbFirst 模式,支持从数据库导入实体,或使用实体生成工具生成实体; 支持 深入的类型映射,比如...PetaPoco 是首选的微 ORM,也是任何体面的开发人员工具包必不可少的实用程序。 主要特点: 与Dapper一样,它很快,因为它使用动态方法生成 (MSIL) 将列值分配给属性。...与ActiveRecord一样,它支持对象和数据库之间的密切关系。 与SubSonic一样,它支持使用 T4 模板生成 poco (仅限 V5)。...linq2db LINQ to DB 是最快的LINQ数据库访问库,POCO对象和数据库之间提供了一个简单、轻量、快速且类型安全的层。...它经过高度测试,并被生产环境运行的各种关键系统使用

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

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

主要特点: 支持 CodeFirst 模式,即便使用 Access 数据库也支持数据迁移; 支持 DbFirst 模式,支持从数据库导入实体,或使用实体生成工具生成实体; 支持 深入的类型映射...PetaPoco 是首选的微 ORM,也是任何体面的开发人员工具包必不可少的实用程序。 主要特点: 与Dapper一样,它很快,因为它使用动态方法生成 (MSIL) 将列值分配给属性。...与ActiveRecord一样,它支持对象和数据库之间的密切关系。 与SubSonic一样,它支持使用 T4 模板生成 poco (仅限 V5)。...linq2db LINQ to DB 是最快的LINQ数据库访问库,POCO对象和数据库之间提供了一个简单、轻量、快速且类型安全的层。...它经过高度测试,并被生产环境运行的各种关键系统使用

3.8K20

Airtest Project:一款免费的自动化测试工具

左下角包含Poco窗口,可处理所选界面的UI元素,以及树形结构表单可以看到所选UI界面的位置。 中心区域包含脚本编辑部分,用于使用Airtest APIPython开发自己的脚本。...右侧,有一个实时的手机屏幕,支持使用鼠标事件来远程控制设备。 连接移动设备之前需要做什么? 为了能够使用移动设备测试和调试移动应用和游戏,该设备需要处于开发人员模式并且 USB调试设置已打开。...Poco Assistant下方选择Android,接着只要点击IDE窗口左侧的Poco Assistant下方最右侧的录制按钮即可。详细操作步骤如下所示: ?...回放成功后会生成测试报告,测试报告查看的方式也相同。...当然日常的工作也可以使用基于图像识别的定位方式去录制一些脚本解决实际工作的一些重复的体力活。

2.9K50

DTO与值对象和POJO比较

本文想澄清DTO与Value Object与POCO的区别,其中DTO代表数据传输对象,而POCO是Plain Old CLR Object,Java环境也称为POJO。...它只是对象如何存储在内存的实现细节,我不打算触及它。这里将讨论的是DDD概念的值对象Value Object。 DTO,Value Object和POCO等概念经常互换使用。...DTO是一个代表一些没有逻辑的数据的:DTO通常用于单个应用程序的不同应用程序或不同层之间传输数据。您可以将它们视为愚蠢的信息袋,其唯一目的是将此信息提供给收件人。...另一个非POCO方法的好例子是4.0版之前的Entity Framework。每个EF生成都继承自EntityObject基,因此带来了很多特定于Entity Framework的复杂性。...从4.0版开始,Entity Framework引入了POCO数据模型,该模型允许使用不从EntityObject继承的。 也就是说,POCO代表领域对象使用尽可能简单的

2.1K20

Entity Framework简介

Code First Code First 可以通过来描述模型,然后通过来创建数据库,这种类简称为POCO(Plain Old CLR Object)。...POCO的C是指 .NET Framework公共语言运行时(Common Language Runtime,CLR)的一个简单对象。...POCO对域对象使用尽可能简单的,可以包含属性、方法等,但是方法不能实现持久化逻辑,也就是说POCO也可以包含业务逻辑。...2.Model First Model First 允许我们使用实体设计器空模型创建模型实体,及其关系和继承层次结构,然后创建数据库。...优缺点如下: 无法控制实体和数据库,因为自动生成的代码难以修改,但是对于小型且简单的项目,它仍行之有效; 实体添加额外的功能,不得不修改T4模板或者使用部分类来完成; 数据库模型的更改不是最佳选择

1.6K10

Entity Framework快速入门--CodeOnly POCO

当然EF对于POCO(Plain Old CLR Object)的支持是EF4.0的一大特性。也是EF可扩展性提高的一大进步。废话少说,也是简单给大家演示一下操作的步骤!...流程:EDMX设计器里设计 实体模型→根据实体编写相应的实体代码→编写数据库访问接口网关→测试结果 那开始我们的EF POCO的旅行吧!...实体模型设计器,右击 属性设置实体模型的代码生成策略 :无,这一步的设置是为了不让EF自动帮我们生成实体代码等,而是由我们自己来定义实体的代码,这样灵活性更高,而且我们可以实体上做扩张更方便...总结一下: 我们并没有用EF自动生成的代码,只是使用了它的模型设计器,帮我们生成CSDL/MSL/SSDL的定义文件(xml).然后我们自己写实体的代码,以及自己写一个数据库访问的网关ObjectContext...这样带给我们的惊喜是里程碑式的,我们可以实体上进行扩展,可以把它扩展成领域模型,而且代码更加灵活,并不受制于EF的自动生成

36820

【原】尝试 Entity Framework POCO功能+Code First

Entity Framework 2.0添加了的支持POCO(Plain Old CLR Object)的功能,这使得EF的功能越来越强大了。...实体设计窗口中,右击→属性→代码生成策略=>无  ,这一步就是去掉EF自动代码生成实体以及EF数据访问上下文网关ObjectContext等。...当然下图所示Car我添加了一个复杂类型Wheel类型。...最终如下图所示: 第三步:根据模型生成数据库(codefirst) 模型设计器里面 右击→根据模型生成数据库 →选择数据库连接→在生成的SQL代码文件并默认vs2010上打开,右击执行SQL 第四步...{ get { return carSet; } set { carSet = value; } } } } 第六步:使用设计好的实体上下文查询的数据

53010

Entity Framework 4 的 POCO学习

其中一个很大的原因,也许就是不支持POCO,至少我自己是这么想而不使用EF1的,Entity Framework 4.0版本(又称EF V2)将提供POCO支持,对很多人来说,这是开始使用Entity...学习最好的方式当然是动手练习了,今天花了大半天跟着这篇文章【翻译】Entity Framework 4.0使用 Repository 和 Unit of Work 模式,这篇文章里头有3篇POCO的系列...POCO (【翻译】实体框架POCO支持 - 第三部分 - POCO的变动跟踪) 还有这篇文章EF 4 – Implementing POCO Objects,图文并茂的详细介绍了整个过程。...这里整理一下学习过程的注意点: 自动生成代码的功能要关掉 继承的ObjectContext的构造函数的参数其实就是指定数据库连接串Connection String 工具生成的Edmx的Connection...一个简单的规则是,在你的POCO使用的实体类型名称,属性名称,和复杂类型名称必须匹配那些概念性模型定义了的相应名称。

1.1K80

【愚公系列】2023年02月 .NET CORE工具案例-Dapper-Extensions的使用

使用ORM的好处是增、删、改很快,不用自己写sql,因为这都是重复技术含量低的工作,还有就是程序中大量的从数据库读数据然后创建model,并为model字段赋值。这些ORM都可以轻松给你搞定。...此库的目标是通过不需要任何属性或基继承来保持 POCO 的纯正性。...通过使用ClassMapper(无属性!)的纯POCO。 通过使用映射器自定义实体表映射。 复合主键支持。 单数和复数表名支持(默认为单数)。 易于使用的谓词系统,适用于更高级的方案。...在生成的 SQL 中正确转义/列名称(例如:从 [用户] WHERE [用户] 中选择 [名字]。...2.使用方法 Person public class Person { public int Id { get; set; } public string FirstName { get

80130

NHibernate学习笔记之一,Hello world!

开始做一个简单的增删改查示例,如图1示例:  图1 1、创建数据库与,这里假设使用NibernateDemo数据库,Users包括(id,name,pwd)字段,id是主键自动增长,name与pwd...3、编写实体POCO,Plain Old CLR Objects),映射文件包含POCO映射到一个或者多个数据库的元数据信息。User.cs文件如下所示。...4、为POCO编写写一个数据库映射文件,其实User.hbm.xml映射文件包含了对象/关系映射(ORM)所需的元数据。元数据包含持久化的声明和属性到数据库的映射。...,该文件必须输出到Bin目录,否则会报错“xxx is not mapped”,如图3所示具体方法是:选择User.hbm.xml文件->属性->生成操作,设置这个属性的值为“嵌入的资源” 图3 5...            finally             {                 session.Close();             }         }     } } 7、表示层使用

58320

DataReader类型化数据读取与装箱性能研究

前言 各种ORM框架或者SQL映射框架(例如MyBatis,SOD框架之SQL-MAP功能),都有将查询的结果映射为内存对象的需求,包括映射到实体、简单类型(例如Java的POJO,.NET的POCO...映射对象 下面的测试方法都是将数据库同样的数据通过DataReader读取出来映射到不同的对象,本篇文章测试用来映射的对象一个是SOD框架的实体,一个是普通的DTO对象,DTO是POCO的一种。...AdoHelper对象的封装比较简单,并且上面的查询会查询Tb_User1的全部10万条数据,所以讨论查询性能的时候,可以认为绝大部分时间都是处理DataReader读取数据的问题,并且还采用了比字段名定位数据读取位置更高效的字段索引读取的方式...要解决这个问题我们可以使用反射、Emit或者表达式树来动态生成这种跟手写查询一样的代码。...SQL Server Express LocalDB 创建一个数据库文件,在此文件数据库创建一个User实体对应的数据,然后插入10万条数据,这个功能可以通过SOD框架下面的代码实现: private

1.6K20

谁偷偷删了你的微信?别慌!Python 帮你都揪出来了

2 准 备 工 作 开始编写脚本之前,需要做好如下准备工作 一部 Root 后的 Android 手机或者模拟器,如果没有 Root 的设备,推荐使用网易 MuMu 模拟器 Android 开发环境...首先,我们使用 Android Studio 新建一个项目,项目初始化的时候,授予应用管理员权限以及修改微信目录的读写权限。...微信数据库的密码是由设备的 imei 和微信的 uid 进过 md5 算法生成的。.../** * 连接数据库 * * 常用库介绍:【rcontact】联系人,【message】聊天消息 * * @param dbFile */ private void openWxDb..., Toast.LENGTH_SHORT).show(); } 需要注意的是,数据库 rcontact 的数据比较杂乱,除了正常的好友数据,黑名单好友、已删除好友、公众号、微信群等数据也包含在内,

1K31

谁偷偷删了你的微信?别慌!Python 帮你都揪出来了

2 准 备 工 作 开始编写脚本之前,需要做好如下准备工作 一部 Root 后的 Android 手机或者模拟器,如果没有 Root 的设备,推荐使用网易 MuMu 模拟器 Android 开发环境...首先,我们使用 Android Studio 新建一个项目,项目初始化的时候,授予应用管理员权限以及修改微信目录的读写权限。...微信数据库的密码是由设备的 imei 和微信的 uid 进过 md5 算法生成的。.../** * 连接数据库 * * 常用库介绍:【rcontact】联系人,【message】聊天消息 * * @param dbFile */ private void openWxDb..., Toast.LENGTH_SHORT).show(); } 需要注意的是,数据库 rcontact 的数据比较杂乱,除了正常的好友数据,黑名单好友、已删除好友、公众号、微信群等数据也包含在内,

89750

Airtest Project入门

Airtest Project提供了一个自动化测试编辑器Airtest IDE,Airtest IDE使用了基于图像识别的UI自动化测试框架—Airtest来进行控件定位;它同时集成了POCO框架,POCO...Poco Assistant下方选择Android,接着只要点击IDE窗口左侧的Poco Assistant下方最右侧的录制按钮即可。如下所示: ?...同样假定操作的入口是小程序的列表里,录制上面的三个步骤,录制的时候有时候定位方式不是很准确,可以通过点击上图中间的Poco Inspector按钮,接着Device Screen区域要查看控件信息的地方鼠标右键...基于图像和基于控件在这篇文件里是分开介绍的,它们混合起来用会强大不少,如果基于控件定位的方式搞不定的会就把基于图像的添加进来,这样就方便不少,不会出现其他自动化工具对某一型的控件不好定位的问题。...没有太多编码技巧或者讨厌编码的人也可以使用基于图像识别的定位方式去录制一些脚本解决实际工作的一些重复的体力活。

1.4K20

通过数据库使用 MyEclipse2017的反向生成工具-->hibernate反转引擎引擎(MyEclipse2017自带的插件) 来反转生成实体和对应的映射文件

Java视图 1、MyEclipse,Java视图下,新建一个普通的java project,新建该项目的目的是:用来接收反转引擎生成的实体和对应的映射文件。...13、选中自己新建的那个 table2hbm项目,以及对应的包结构,勾选上要生成的文件,点击Next ? 14、由于目前我们只是一张,所以不需要勾选之间的关系,点击Next ?...15、因为默认生成的pojo名是TUser,不好,我们需要自定义的,如下图所示: ? 16、点击Finish,到此为止,实体和对应的映射文件就自动生成好了。...eclipse 17、由于实际开发,为了响应速度和开发效率,我们一般使用eclipse,而不使用带了很多插件的MyEclipse,我们使用它仅仅是为了使用一下它的插件而已!...所以我们再将我们想要的东西(上图红色框框的),复制粘贴到我们Eclipse的项目里面去,如下图所示: ?

66620

用事实说话,成熟的ORM性能不是瓶颈,灵活性不是问题:EF5.0、PDF.NET5.0、Dapper原理分析与测试手记

很快发现,烦心的不止这个Content内容字段,如果要做到SQL那么灵活,要让系统更加高效,有很多地方实体都不需要完整映射一个的,一个被影射出3-4个实体是常见的事情,这让系统的实体数量迅速膨胀...当时这个ORM查询API--OQL很简单,只能处理相等条件的查询,但是能够只选取实体的部分属性,已经很好了,复杂点的查询,结合在XML写SQL语句的方式解决,其它一些地方,通过数据控件,直接生成SQL...小结一下我做CRUD的历史,首先是对写SQL乐此不彼,还发明了XML文件配置SQL然后映射到程序的功能:SQL-MAP,然后觉得这样写SQL尽管方便管理编写查询且可以自动生成DAL代码,但是项目里面大量的...2.2,表达式树 有关表达式树的问题,我摘引下别人文章的段落,原文《表达式即编译器》: 微软.NET 3.5引入了LINQ。...: 使用OQL构造查询表达式,但是将结果映射到一个POCO实体使用了泛型委托 privatestaticvoid TestEntityQueryByPOCO_OQL(AdoHelper db,

4.1K90

Code-First Migrations随Entity Framework 4.3一同发布

如果你正在使用Entity Framework Code-First,那么借助迁移功能,你可以不需要删除再重新创建数据库模式(database schema),而只要通过更新就能将改动映射到你的POCO...。...该过程包含生成DDL语句创建新的和列,改变已有的和列等等。...虽然迁移功能作为Nuget包开放已经有了一阵子(如果出于某些遗留原因,你还在使用低版本的Entity Framework,那么你还可以继续使用那个Nuget包),但是它并没有得到微软的官方支持。...理想情况下,只有需要覆写默认行为时,例如重命名列名而不是删除再创建一个新的列,或者为增加的列提供默认值时,你才会用得到基于代码的迁移。 另外,迁移还能够创建用于生产数据库的部署脚本。

64690
领券