.NET中最好的免费库来处理SQL Server中的数据是什么?

3

在.NET中,哪个是最好的免费库来:

  • 使用最佳性能(低级别)选择、插入、更新SQL Server中的数据
  • 启动存储过程
  • 自动生成对象层(1个对象=1个表),没有关系链接(外键仅为id-'int')

我不想使用EF(性能非常差)

谢谢


他正在寻找能够生成对象层的工具。 - Chris Conway
1
你有哪些具体指标表明 EF 在你的要求方面性能非常糟糕吗?如果没有,那么你只是在猜测。也许你应该进行一些测试,看看你的假设是否正确。 - Erik Funkenbusch
使用bltoolkit(请参见ormbattle.net) - sirmak
6个回答

11

ADO.Net 是随 .Net 框架一同提供的,是你最佳的选择。通过 Dataset Designer,Visual Studio 可以协助构建基于数据驱动的应用程序和类型化数据集。

为了使用更高级别的抽象来构建应用程序,可以使用包含在其中的 Entity Framework

对我来说,现有的需求似乎不足以证明需要使用其他选项。但如果您希望今后拓展和丰富这个解决方案,现在就值得评估其中一个或多个选项。


1
但是,它并没有真正生成完整的对象层。 - tdammers
1
ADO.Net并不会自动生成对象层(谢天谢地),但它可以轻松支持分发DataSets和DataTables,这些可以相对容易地进行修改并持久化回SQL Server(使用数据适配器,尽管这种方法并不总是按预期工作)。您可以轻松创建自己的类层来覆盖此功能,或者直接跳过该层并直接使用DataTables。 - MusiGenesis
1
您可以使用ADO.Net生成类型数据集和适配器。您需要结合数据库浏览器在DataSet编辑器中执行此操作(添加新项... DataSet)。 - Tergiver
@Tergiver- 很好的观点,将其整合到答案中。 - Steve Townsend

3
请看 NHibernate... 它有点陡峭的学习曲线,但它可以非常有效地实现你所需要的所有功能。
要生成对象层,有工具可以查看您的数据库并尝试为您完成此操作。 MyGeneration 和 CodeSmith 是我想到的两个工具。

1
我听说NHibernate的性能与Entity Framework类似... - Patrice Pezillier
1
嗯,这真的取决于你如何使用它。如果你有良好的惰性加载和缓存策略,它可以让你非常快速地达到企业级别的性能水平。 - Chris Conway
3
@Patrice 似乎你想要在数据层中添加功能,既不会减慢速度,又会减慢速度...如果你想要最快的数据访问速度,可以使用数据阅读器并处理低级复杂性。如果你想要抽象出对象,则可以使用 ORM。在我看来,使用 ORM 进行抽象后,你将能更好地处理缓存、维护和优化,从而提高性能。 - marr75
我完全同意marr75所说的!DataReaders是最快的,但与生成对象无关。这是一种权衡,无论你怎么看,我每天都会选择ORM。 - Chris Conway

1

BLToolkit。查一下吧 ;) 不会生成DTO,但性能真的非常好。


1

0

使用ADO.NET与企业库。

来自微软

微软企业库是一组可重用的软件组件(应用程序块),旨在帮助软件开发人员处理常见的企业开发横切关注点(如日志记录、验证、数据访问、异常处理等)。 应用程序块是一种指导;它们以源代码、测试用例和文档的形式提供,可以“原样”使用、扩展或修改,供开发人员在复杂的企业级业务开发项目中使用。

http://msdn.microsoft.com/en-us/library/ff648951.aspx http://www.pnpguidance.net/category/EnterpriseLibrary.aspx

如果您想为数据库表生成实体类,请尝试使用LINQ to SQL。

http://msdn.microsoft.com/en-us/library/bb425822.aspx http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx


0

既然你只关心SQL Server,我认为最好的方法是使用Linq to SQL。你还可以获得很多额外的东西:延迟加载、缓存等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接