我的编程空间,编程开发者的网络收藏夹
学习永远不晚

用于.NET Core的ORM是怎样的

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

用于.NET Core的ORM是怎样的

今天就跟大家聊聊有关用于.NET Core的ORM是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

尽管EF Core正努力提供视图和存储过程等基本数据库特性,但是开发人员也在寻求能满足他们数据访问需求的ORM工具。下面列出一些相对广为使用的ORM。

LLBLGen Pro Runtime Framework

LLBLGen Pro Runtime Framework是一种“可选”的ORM,它是与LLBLGen实体建模工具一并使用的。这里称其为“可选的”,是因为它也能和Entity Framework等其它ORM一起工作。

类似于Entity Framework,LLBLGen Pro Runtime Framework也是一种OOP风格的完备ORM(Full ORM)。但是它在几个方面上有所差异,首先是它更侧重于性能。尽管EF Core的性能显著高于经典的Entity Framework,但是两者依然明显地低于其它的ORM。LLBLGen Pro的作者Frans Bouma发起了一个性能比赛,意在比较各种.NET数据访问和ORM实现的速度。

LLBLGen Pro Runtime Framework也不同于EF/EF Core,它并非绑定于上下文(Context)的。每个实体无需维持一个打开的上下文,就可以追踪自身的改变,并在内存中操作对象图。该特性无疑会受到DBA的欢迎,因为无需维持打开的上下文,意味着不需要维持一个打开的数据库连接,否则需要操作数据库的连接池。

与大多数用于.NET Core的ORM一样,在LLBLGen Pro Runtime Framework的Core版本上存在一些限制。但这些限制主要局限于.NET Core本身的缺失特性。例如,TransactionScope目前尚不被SqlClient支持、很少一部分对象是可二进制序列化等。

Dapper

另一种是广为人知的微ORM(Micro-ORM)产品Dapper。Dapper常被认为是最快的ORM,几乎总是保持着.NET ORM基准测试的头名位置。

通常使用Dapper实现对原始SQL的调用并物化查询结果,因此它在.NET和.NET Core上的工作情况基本相同。Dapper不同于完备ORM,它并不提供任何SQL生成功能。虽然许多开发人员并不相信由ORM生成的SQL,但这还是会令Dapper在使用上要比其它ORM产品更为繁琐。

LINQ to DB

LINQ to DB称自己是“超出Dapper、Massive、PetaPoco等微ORM产品一步之遥”。它不具备一些在Entity Framework中使用会引发性能问题的特性,例如更改追踪。

LINQ to DB中的Join操作有些不同。在EF中,任何需要执行“Join”操作之处,事实上是作为子对象或集合(Collection)对待的。所生成的SQL自然会使用Join操作,但是当结果集被物化为对象后,SQL语句的执行就不再依赖于Join操作了。

LINQ to DB实际执行Join操作,具体实现为“Left Join”和“Inner Join”操作。如果使用EF解释LINQ,那么生成语句在语法虽然略显奇特,但更好地匹配了数据库的实际工作情况。

DevExpress XPO

eXpressPersistent Objects(XPO)是一种商业产品。Reddit用户“-GrapH-”对其如此评价:

我使用DevExpress XPO已有11年了。今年10月,它开始支持.NET Standard 2.0。尽管它是一个商业产品,但支持.NET Core的首个.NET测试版(v17.2.2)将对所有的用户免费使用。进一步更新尽管需要付费,但是其中包括了视觉设计工具和技术支持。虽然该ORM不同于EF,并且推出的时间更长(如果我没有记错的话,它的第一个版本是针对.NET 1.1发布的),但是其中基本包含了各种规模应用程序所需的所有特性。它的演示和教程提供于https://github.com/DevExpress/XpoNetCoreDemos。

看完上述内容,你们对用于.NET Core的ORM是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

用于.NET Core的ORM是怎样的

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

用于.NET Core的ORM是怎样的

今天就跟大家聊聊有关用于.NET Core的ORM是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。尽管EF Core正努力提供视图和存储过程等基本数据库特性,但是开发人员也在寻
2023-06-19

.Net Core的CustomSerialPort()怎么用

这篇文章主要介绍“.Net Core的CustomSerialPort()怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“.Net Core的CustomSerialPort()怎么用”文章能帮
2023-06-26

NET Core中的Worker Service是什么/怎么用

本篇内容主要讲解“NET Core中的Worker Service是什么/怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“NET Core中的Worker Service是什么/怎么用”吧!
2023-06-09

.NET Core中的HttpClientFactory类怎么用

小编给大家分享一下.NET Core中的HttpClientFactory类怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、HttpClient使用在C#
2023-06-29

.Net Core AOP之AuthorizeAttribute的作用是什么

AuthorizeAttribute在.Net Core中的作用是用于对控制器或者控制器中的方法进行权限验证。当使用该属性时,只有具有相应权限的用户才能访问被标记的控制器或方法,否则将返回未授权的错误。它是基于声明式授权的一种方式,可以方便
2023-09-26

.Net Core微服务之EventBus的作用是什么

在.NET Core微服务架构中,EventBus(事件总线)的作用是实现微服务之间的解耦和消息传递。它允许微服务之间通过发送和订阅事件来进行通信,而不需要直接调用彼此的API或方法。EventBus可以帮助实现以下功能:1. 解耦微服务:
2023-09-21

基于NET Core的Nuget包制作、发布和运用方法

这篇“基于NET Core的Nuget包制作、发布和运用方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于NET Cor
2023-06-29

Microsoft .NET Framework漏洞是怎么样的

这篇文章给大家介绍Microsoft .NET Framework漏洞是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。0x01 事件背景8月24日,360核心安全事业部捕获到一新型的office高级威胁攻击。1
2023-06-19

JSON字段类型在ORM中的使用是怎么样的

JSON字段类型在ORM中的使用是怎么样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。JSON字段类型在ORM中的使用  ThinkPHP5.1版本正式发布已
2023-06-02

.NET正则类及其方法应用是怎样的

本篇文章为大家展示了.NET正则类及其方法应用是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1 概述初学正则时,对于Regex类不熟悉,遇到问题不知道该用哪种方法解决,本文结合一些正则应用的
2023-06-17

.NET Framework配置的相关步骤是怎样的

.NET Framework配置的相关步骤是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。对于.NET Framework的强大的功能,相比大家都应该有所
2023-06-17

.NET Core中对象池Object Pool的使用方法是什么

这篇文章主要讲解了“.NET Core中对象池Object Pool的使用方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.NET Core中对象池Object Pool的使用方法是
2023-06-25

.NET Framework匿名类的操作方法是怎样的

本篇文章为大家展示了.NET Framework匿名类的操作方法是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。.NET Framework应用程序为开发人员提供了一种WEB应用程序部署的环境
2023-06-17

Python代码审计中的SQL和ORM注入是怎样的

本篇文章为大家展示了Python代码审计中的SQL和ORM注入是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python代码审计方法多种多样,但是总而言之是根据前人思路的迁移融合扩展而形成。
2023-06-17

怎么判断.NET Core应用程序是以管理员身份运行的

这篇文章主要介绍了怎么判断.NET Core应用程序是以管理员身份运行的的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么判断.NET Core应用程序是以管理员身份运行的文章都会有所收获,下面我们一起来看看吧
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录