Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为.net选择对象关系映射_.net_Orm - Fatal编程技术网

如何为.net选择对象关系映射

如何为.net选择对象关系映射,.net,orm,.net,Orm,(这必须是一个常见问题,因此我希望它以重复的形式结束,但是我找不到一个问题,其中包含对问题的良好概述 强>当< > < > ORM时,有人应该考虑< .net >强>系统> /p> 上述是如何通过.net系统常用的ORM解决的 当我说“考虑使用ORM”来回答.NET问题时,我应该链接到一个答案: 一个人是否希望提供一个新的答案并获得赏金?我不是.net开发人员,但你应该检查一下。它是最先进的Java ORM的.net版本。我确信它也是.net的一个很好的解决方案,因为ist使映射对象变得非

(这必须是一个常见问题,因此我希望它以重复的形式结束,但是我找不到一个问题,其中包含对问题的良好概述

<>强>当< <强> > < <强> > ORM时,有人应该考虑< <强> .net >强>系统> /p> 上述是如何通过.net系统常用的ORM解决的

当我说“考虑使用ORM”来回答.NET问题时,我应该链接到一个答案:


一个人是否希望提供一个新的答案并获得赏金?我不是.net开发人员,但你应该检查一下。它是最先进的Java ORM的.net版本。我确信它也是.net的一个很好的解决方案,因为ist使映射对象变得非常容易,但仍然足够强大,可以将对象映射到几乎任何类型的sql模式。


整个网站致力于分析和比较各种.NETORM(对象关系映射)产品

不过,请记住,即使是ORMBattle网站也只比较了大约7或8个ORM(尽管它确实比较了这些ORM,但似乎比较彻底,但请参见下面的免责声明)

根据,大约有40个ORM可用! SharpToolBox网站上的ORM产品列表和它们的描述应该给您一个良好的开端。请看这里:

考虑到几乎每个开发人员和每个应用程序的数据访问需求都可能有所不同,因此很难在所有这些需求之间找到完整的比较。这可能是存在40多种不同ORM产品的原因,因为ORM世界中没有“一刀切”的产品

此外,请记住,ORM产品之间的任何比较都可能是“有缺陷的”,因为您不能始终确保不同ORM产品的各种功能是为完全相同的目的而设计的。AJ对这个答案的评论链接到一位作者,他在ORMBattle将NHibernate与其他ORM进行比较时准确地描述了这一现象


我认为最好的方法是查看基准,并阅读每个ORM的描述,但不要从字面上理解这些内容,而是根据您自己的应用程序应该做的事情来解释这些数字。例如,如果您的应用程序主要是一次读取和写入一条数据库记录,那么您可能会使用与需要批量处理数据库记录的应用程序完全不同的ORM产品。

这是我向人们提出的关于选择.NET ORM的主要问题/答案:

我在那个问题的答案里放了一堆“重复”式的问题。因此,你可以从各种不同的角度进行大量的阅读

我还将尝试回答您的具体问题:

什么时候应该考虑什么? 为.net系统选择ORM

  • 你想确保它与 你的数据库。如果你的数据库 设计是最先进的15年 以前,许多规模较小和/或不太成熟的 ORMs无法处理您缺少的 钥匙、奇怪的关系等

  • 你想确保它与 您的数据库供应商。SQL Server 支持总是很重要的 可用,但其他数据库可能或 可能不受各种ORM的支持 (MYSQL似乎排名第二 通用支持的数据库)

  • 如果要生成数据库 根据您的.NET类,您需要 确保您的ORM支持这一点

  • 如果你想要表演,我想你 远离表现不佳的人 一个,但那些永远不会成为一个 前五名,只要你愿意 有一些主流的ORM 街头信誉,你可能很好 在这里

  • 您需要确保它具有您需要支持的功能:

  • 考虑供应商锁定以及如何锁定 很容易,你可能会,也可能不会 转义它(对于数据库和 供应商和ORM供应商)

  • 考虑一下你想花多少钱

  • 考虑一下你想要什么样的代码 一代人

  • 考虑一下单元测试需要什么 支持

  • 考虑一下你想要花多少时间 花时间研究各种 选项

  • 以存在的社区为例 在ORM周围

有很多事情需要记住。我相信我还能想到更多。最后,很多都是情境性的,你需要自己决定什么对你和你的项目最有利

ORM如何解决上述问题 这些是.net的常见用法 系统


据我所知,唯一能满足.NET项目几乎所有需求的.NET ORM(除去那些不知名的数据库供应商)就是NHibernate。它已经在许多不同的场景中用许多“遗留”数据库进行了测试。

在NHibernate或实体框架之间进行选择。NHibernate更具可扩展性,通常功能更丰富。实体框架使用丰富的功能集工作得更好、更易于使用

这两个框架都很棒,实体框架比NHibernate有一个很大的优势:它更容易工作,启动阶段可能相当困难。EF在这方面做得更好。然而,在某些领域,NHibernate具有优势,例如,在扩展框架时,NHibernate提供了更多的选择


最后,接你的电话。这两种方法中的任何一种都不会让你失望。

ORM Battle所做的分析的有用性备受争议。。。一本好书:@AJ-有趣的文章。我确实同意(任何东西的)基准可能会产生误导。这就是为什么每个寻找ORM工具的人都应该做自己的研究,因为每个人(以及他们的需求)都是不同的。基准通常可以像统计数据一样,我们知道它们有多有用!;)()这就是为什么有大的FAQ部分:)看我可以添加为什么有