2010-06-15 42 views
3

在开始编写新的应用程序或数据访问库之前,我多次问我自己,应该使用LINQ to SQL还是传统的ADO.net,我已经使用了这两个工具和开发时间来构建LINQ to SQL应用程序与ADO.net相比是1/3。LINQ to SQL或传统的ADO.NET?

唯一觉得我喜欢使用LINQ to SQL的是,我不需要设计领域对象LINQ为我做了这些,并节省了我的时间在枯燥的事情上:P但LINQ to SQL适合大型在使用ADO.net时,我们可以避免使用一些开销吗?

+0

http://stackoverflow.com/questions/5994968/ado-net-or-linq-to-sql?rq=1 HTTP:/ /stackoverflow.com/问题/ 671179 /林格 - nhibernate-ef-et-al-who-wins?rq = 1 – nawfal 2012-11-11 20:09:35

回答

4

我喜欢LINQ to SQL;使用数据模型很容易。如果你有.NET 4,考虑使用ADO.NET Entity Framework作为它的未来,它支持多个数据库。

如果您对数据库使用LINQ查询,那么LINQ to SQL会有一些小的开销,但我认为它在大多数方面可以忽略不计。我们有良好的表现。此外,它还支持存储过程,因此您始终可以从性能角度回退。

1

如果编写LINQ-to-SQL版本需要1/3的时间,那么为原始时间的2/3释放其他内容,如性能调优。

+0

不太确定号码(1/3)来自哪里......有时LINQ需要同样长的时间! – 2010-06-15 12:01:50

0

请参阅this。如果您节省了时间,并让您的工作更轻松,那么值得吗?除非您知道可以通过手动编码您的数据访问来解决的具体问题,否则我不打扰。

1

我们是一家价值25亿美元的太阳能公司,我们使用L2S作为我们所有制造运营应用的基础。我们没有遗憾。对我们来说,一个巨大的优势是我们所有的查询都使用LINQ。这意味着我们所有的查询都是强类型的。所以,在模式更改后,编译器会告诉我们哪些查询需要修复。当然,如果您将所有查询传递给存储过程,则不具备此优势。

+1

hmmm,编译器告诉你哪些查询需要修复...现在这是一个很大的帮助,可以为您节省很多时间,为Linq +1 – Dal 2010-06-15 12:10:00

4

就我个人而言,我不会回到ADO.NET的DAL的东西。但是,请记住,使用Linq2Sql,您与MS SQL Server绑定,我认为这是不可接受的。

也许还可以考虑其他DAL/ORM,例如NHibernate,SubSonic,实体框架(MS),LightSpeed,Castle ActiveRecord(基于NHibernate)。其中一些(例如NHibernate和Entity Framework)也有可选的Linq查询接口。

1

LINQ to SQL在一个与Microsoft紧密联系的开发环境中可能会很有用,并且在未来几年里没有可预见的与微软的偏差。但是,为了扩展到其他DBMS环境,我会推荐使用LINQ to SQL的实体框架,但要警告2008版本仍然有一些烦人的限制(不确定2010年左右)。

我永远不会直接使用ADO.NET,如果我可以帮助它。这主要是因为作为开发人员,采用可应用于多个领域的工具对我来说是最有利的。我目前使用LINQ to Entities和Entity Framework与Oracle数据库进行通信。 LINQ to SQL对此不起作用。

0

没有任何理由在ADO.NET LINQ to SQL的