2011-03-11 101 views
2

如果您现在正在.NET 2008中编写小型数据库应用程序,那么可以使用普通的ADO.Net或ADO.Net实体框架或两者都有?Visual Studio 2008中的ADO.Net或实体框架

我使用Visual Studio 2008学习.Net。我已经在MS Access VBA中做了相当多的编程,但是我已经决定是时候通过桌面和90年代了。我的问题部分是关于我应该学什么,但也非常关心我应该在现实世界中实际应用的东西。

回答

4

技术实体框架是ADO.Net的演变。帮你一个忙,并倾倒数据集,以支持更强大的ORM。此时,没有人应该再传递DataSet。

值得注意的是,对于ORM,实体框架不是您唯一的选择。有NHibernate,SubSonic,LINQ to SQL等...所有这些都将在2008年工作得很好。我认为EF 1没有完全烘焙。

+0

从我问这个问题到五年后,我们发现实体框架查询太有限了,而且ADO.NET DataReader的性能更好。我现在不同意“在这一点上没有人应该传递数据集”的想法。无论如何仍然会使用EF Code First进行迁移,但我们的GET查询将成为大多数原始SQL,并且越来越多地使用DataReader来提高速度。 – HK1 2016-08-17 17:08:57

0

如果您的数据库足够小并且没有太多查询,请执行ADO.NET,但是如果您正在采取任何规模,请执行实体框架,因为这将值得开销。数据生成和原生查询关键字将大大减少错误。

+0

你保持你的答案知道VS 2008只使用EFv1,而不是新的,更好的EFv4? – HK1 2011-03-11 03:13:00

+0

@ HK1:是的,VS2008仅适用于.NET 3.5 - > EF v1。 EF v4仅适用于.NET 4 - >您**需要** VS 2010 – 2011-03-11 05:53:12

+0

谢谢,我不认为你完全理解我的问题。我已经读过EF v1并没有真正准备好使用,但VS 2010中的EF v4得到了更好的评价,因为MS修复了EF v1中存在的很多问题。乔希在他的回答中提到了同样的问题。 – HK1 2011-03-20 23:03:31

0

如果您学习,请使用EF。什么是倒退的重点。 它使开发更容易。 ADO/Dataset的做事方式已经死了。 此外,如果你转移到网络,那么使用EF与WCF数据服务是很好的。它是一个很好的技巧。

其次,为什么要使用2008.如果你学习,可以获得最新的工具。快递版本真的很棒。

3

我不会使用VS 2008自带的Entity Framework的版本。使用VS2010的实体框架很好。

我可能不会使用ADO.NET,因为我似乎总是最终编写自己的自定义ORM。

对于.NET 3.5/VS 2008,我会推荐NHibernate。 Linq To Sql可能是一个选项,如果你想快速入门并且可以在完成后丢弃项目(因为长寿命的项目可能必须重写为使用EF或NHibernate)。

因此,首先尝试NHibernate,如果学习曲线过于令人恐惧,则退回到LinqToSql或EF。一旦你学习了一个ORM,学习第二个ORM就容易多了。

此外,您还可以阅读了很多关于这里选择一个ORM的.NET:

NHibernate, Entity Framework, active records or linq2sql

+1

LINQ TO SQL +1。不知道他的项目的规模和范围,你不应该说他必须扔掉这个项目。有数千个L2S应用程序在那里运行就好了。只要SQL查询的效率足够高,我就没有理由重新做这些应用程序,因为MS说L2S已经死了。 – Graham 2011-10-04 14:03:06

+1

@格拉汉姆:我没有说他必须抛弃这个项目。有很多应用程序使用RDO/ADO/OLEDB/ODBC以及微软早已放弃的其他数据库技术。为什么建议有人使用废弃的技术来建立新的代码库? – 2011-10-04 17:55:48