Asp.net 新Web应用程序的最佳数据访问方法
我正在构建一个新的web应用程序项目,对执行数据访问的众多方法感到困惑。我正在回溯SQL,有点困惑是使用LINQtoSQL还是传统的ADO.net 在ADO.net上使用LINQ/SQL有哪些优点和缺点 如果是ADO.net,那么检索数据的最佳方法是调用存储过程还是直接调用t-sql代码 我的问题是,在asp.net中为Web应用程序创建DAL的最干净、最有效、最专业的方法是什么Asp.net 新Web应用程序的最佳数据访问方法,asp.net,ado.net,Asp.net,Ado.net,我正在构建一个新的web应用程序项目,对执行数据访问的众多方法感到困惑。我正在回溯SQL,有点困惑是使用LINQtoSQL还是传统的ADO.net 在ADO.net上使用LINQ/SQL有哪些优点和缺点 如果是ADO.net,那么检索数据的最佳方法是调用存储过程还是直接调用t-sql代码 我的问题是,在asp.net中为Web应用程序创建DAL的最干净、最有效、最专业的方法是什么 谢谢最好的方法是O/RM。小型应用程序Linq2Sql,大型应用程序实体框架4或NHibernate(Fluent
谢谢最好的方法是O/RM。小型应用程序Linq2Sql,大型应用程序实体框架4或NHibernate(Fluent NHibernate) 从您的代码调用SPs意味着您的应用程序逻辑位于应用程序代码之外的其他位置。这是一条路要走,但目前由于TDD越来越不受欢迎
最好的方法是将DAL创建到一个独立的逻辑层,即自己的程序集中。您应该查看一些ORM框架,如NHibernate: 它的优点和优点是什么 在服务器上使用LINQ/SQL的缺点 ADO.net
- Linq2sql生成一系列 是的1对1映射的类 您的(选定的)数据库表-这意味着您不必编写繁琐且容易出错的数据访问代码 自己使用ado.net李>
- 如果打算使用自定义对象到关系映射(非1对1),Linq2sql可能无法为您提供足够的价值-当然,您仍然可以使用Linq2sql,但这意味着在两者之间有一个额外的层
- Linq2sql允许您使用功能强大的linq表达式轻松查询数据库。编写linq查询为您提供了intellisense,如果您将查询作为字符串嵌入ado.net命令中,或者在ManagementStudio中编写存储过程,您将无法获得这种智能感知
- 使用linq,您不需要了解t-sql,而使用ado.net则需要了解t-sql(尽管如果您的linq查询开始做奇怪的事情,这肯定是一个优势!)。例如,编写提供分页结果集的t-sql查询的复杂性就变成了
李>.Skip(page*size).Take(size)
- Linq2sql自动创建使用参数化查询的t-sql,这比使用字符串构建查询的手写ado.net代码更安全,更能抵御sql注入攻击李>
- Linq2sql不能很好地与存储过程一起工作——如果使用存储过程,您最好不要使用Linq2sql
- 与使用存储过程编写ado.net代码相比,Linq2sql可能要求数据库表的锁定不那么严格
- 如果您排除了linq2sql,而ado.net恰好是数据检索的更好选择,那么如果您经常甚至根本不直接调用t-sql代码,我会感到惊讶。我几乎肯定希望您使用存储过程,因为使用linq和/或安全需求时查询太复杂李>
- 在我看来,最干净的DAL可能会使用linq2sql,因为它是SQL Server中最轻、最有针对性的ORM(当然,假设您仍然对SQL Server这个特定问题感兴趣)
- 最有效的可能是使用ado.net的手写查询,但这可能是浪费时间,因为通常情况下,您会发现像linq2sql这样的工具比90%的开发人员编写的查询更好李>
- 在我看来,最专业的DAL可能是linq2sql,但更可能是NHibernate的实体框架(正如其他答案所建议的),因为它更具灵活性
- 在清洁和专业方面,我最后的选择肯定是手写的ado.net
- 毫无疑问,我会选择Linq2Sql
下载并使用附带的示例开始 如果您想要在性能方面高效地访问数据,没有什么比纯ADO.NET更快的了。您可以在这里查看:。谢谢您的回复。我想在LINQ/SQL或ADO.net之间做出决定?