话虽如此,我需要开始学习.NET中的数据访问策略,我不想再经历那样的事情了。我应该先学习原始的ADO.NET(通过“原始”,我指的是不使用ORM或Linq,而是DataAdapters和Readers),然后学习Linq或ORM,还是可以直接跳入Linq/ORM?我不想比较任何东西,我想知道什么对我作为开发人员长期来说最好。谢谢。
不必费心处理DataAdapters和Readers,它们与LINQ一样抽象。如果你对SQL比较熟悉,那么你已经准备就绪了。只需要尝试理解底层技术正在执行哪些类型的查询,这样你就会知道何时需要转换为原始SQL以改进某些内容。
这取决于你如何定义“学习”。
我认为你长期想要用于工作的是LINQ和EF,而具有ADO.Net先前经验对此并没有帮助,因为使用模型差异太大。
另一方面,了解背后发生的事情很有用(特别是关于查询和DataReaders如何映射到实际打开的数据库连接)。
我建议查看MSDN上的API,并可能阅读一些示例,但不要超过这个范围。这不应该花费太多时间,它会让你对使用模型有所感觉。如果你以后不得不面对ADO.Net,你总可以回来再学习更多。
作为一名开发人员,了解基础和基本原理总是更好的选择。
我认为先学习ADO.NET没有任何害处。先了解数据读取器、断开式数据集等内容,然后再转向更新的功能,如LINQ。
我认为你应该这样做。基本了解它不会花费很多时间。但是理解连接、命令、适配器和读取器将帮助您更快地摆脱错误。此外,我相信有时候您无法使用实体框架来解决问题,因此需要使用纯粹的ASP.NET。
祝好,马蒂亚斯
没有必要学习传统的ADO.Net技术来切换到linq数据访问/实体框架。但是为了更好地掌握,建议先学习它。因为有时您可能需要调试数据提供程序问题,而这可能需要基础。
直接跳跃可能会帮助您立即完成工作,但无法走得更远...
你不需要学习DataAdapters和Readers,因为这些知识无法转移到使用ORM的工作中。
更有用的是尝试查看一些复杂的查询,并在诸如SQL Server Query Analyser之类的工具中运行它们。这将显示查询花费时间的地方,并帮助您通过了解底层发生的情况来优化LINQ查询。
在LINQ查询中运行SQL Profiler也是一个好的实践。