如果您现在正在.NET 2008中编写小型数据库应用程序,那么可以使用普通的ADO.Net或ADO.Net实体框架或两者都有?Visual Studio 2008中的ADO.Net或实体框架
我使用Visual Studio 2008学习.Net。我已经在MS Access VBA中做了相当多的编程,但是我已经决定是时候通过桌面和90年代了。我的问题部分是关于我应该学什么,但也非常关心我应该在现实世界中实际应用的东西。
如果您现在正在.NET 2008中编写小型数据库应用程序,那么可以使用普通的ADO.Net或ADO.Net实体框架或两者都有?Visual Studio 2008中的ADO.Net或实体框架
我使用Visual Studio 2008学习.Net。我已经在MS Access VBA中做了相当多的编程,但是我已经决定是时候通过桌面和90年代了。我的问题部分是关于我应该学什么,但也非常关心我应该在现实世界中实际应用的东西。
技术实体框架是ADO.Net的演变。帮你一个忙,并倾倒数据集,以支持更强大的ORM。此时,没有人应该再传递DataSet。
值得注意的是,对于ORM,实体框架不是您唯一的选择。有NHibernate,SubSonic,LINQ to SQL等...所有这些都将在2008年工作得很好。我认为EF 1没有完全烘焙。
如果您的数据库足够小并且没有太多查询,请执行ADO.NET,但是如果您正在采取任何规模,请执行实体框架,因为这将值得开销。数据生成和原生查询关键字将大大减少错误。
如果您学习,请使用EF。什么是倒退的重点。 它使开发更容易。 ADO/Dataset的做事方式已经死了。 此外,如果你转移到网络,那么使用EF与WCF数据服务是很好的。它是一个很好的技巧。
其次,为什么要使用2008.如果你学习,可以获得最新的工具。快递版本真的很棒。
我不会使用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:
LINQ TO SQL +1。不知道他的项目的规模和范围,你不应该说他必须扔掉这个项目。有数千个L2S应用程序在那里运行就好了。只要SQL查询的效率足够高,我就没有理由重新做这些应用程序,因为MS说L2S已经死了。 – Graham 2011-10-04 14:03:06
@格拉汉姆:我没有说他必须抛弃这个项目。有很多应用程序使用RDO/ADO/OLEDB/ODBC以及微软早已放弃的其他数据库技术。为什么建议有人使用废弃的技术来建立新的代码库? – 2011-10-04 17:55:48
从我问这个问题到五年后,我们发现实体框架查询太有限了,而且ADO.NET DataReader的性能更好。我现在不同意“在这一点上没有人应该传递数据集”的想法。无论如何仍然会使用EF Code First进行迁移,但我们的GET查询将成为大多数原始SQL,并且越来越多地使用DataReader来提高速度。 – HK1 2016-08-17 17:08:57