【问题标题】:Visual Studio 2010 ADO.NET Data Model vs Linq to SQLVisual Studio 2010 ADO.NET 数据模型与 Linq to SQL
【发布时间】:2010-04-12 23:09:54
【问题描述】:
这两者有什么区别?乍一看,它们似乎具有相同的功能。
哪个性能更快哪个更容易使用?
【问题讨论】:
标签:
.net
visual-studio-2010
.net-4.0
data-access
【解决方案1】:
使用 ADO.NET 和某种 SQL:
-
优势:不需要任何类型的配置或建模。
-
优点:效率更高,只要你知道如何编写和优化 SQL。开始时速度更快,并且在必要时更容易进一步优化。
-
需要:更多的 sql 知识(无论如何也不错)
-
需要:一些基础设施/工具来减少重复编码
-
赞成的论据:如果您擅长 sql,拥有良好的数据访问工具,并且在获得数据后立即将数据放在其他地方,那么 Linq-to 没有什么令人信服的地方-SQL。
使用 Linq-to-Sql
-
优点:即使在 linq 经验有限的情况下,也很容易阅读/理解。
-
优势:可以快速为您提供可以立即使用的强大类型。
-
优势:在 Visual Studio 中,您在编译前或编译时更容易发现错误。用简单的老废话,你会发现你在运行时犯了错误。
-
需要:设置架构
-
要求:了解 linq(无论如何你都想拥有)
-
赞成的理由:许多人发现 Linq 性能损失并没有那么大,而且最终不会成为问题。此外,即使您认为自己是 sql pro,也有时提出的 sql linq 比 您 提出的要好。 (Stackoverflow 是一个大网站,它是 Linq-to-sql seems to hold up just fine。)
简而言之,两者都是不错的选择。关键因素是:
- 你的技能组合:如果你擅长
SQL(和代码生成),更少
使用 Linq-to-SQL 的原因。
- 您数据库负载挑战:如果您没有
共享一个微不足道的数据库服务器
其他解决方案,而你不是
巨大,Linq-to-Sql 非常强大
够了。
擅长 SQL 将在很长一段时间内都很重要。而且,擅长 LINQ 是一个非常好的举措。 Linq-to-XML 和 Linq-to-Objects 是很棒的技术,一种风格的技能可以直接转化为其他 Linq 风格。
【解决方案2】:
对我来说最大的好处是您可以免费获得一个体面的数据库对象模型,而无需编写多余的“制作一个看起来有点像这张表的对象”代码,甚至更多余的“用数据填充这个对象” "代码。
它并不完美,但确实可以节省很多时间。