SQL Server和.NET数据库通信层的最佳实践
我被要求在几个小时内实现一个新的ASP.NET应用程序,该应用程序必须访问SQL Server数据库 我想知道访问数据库的最佳(和最快)方法是什么,一个好的做法是创建一个数据访问层,但您将如何创建它SQL Server和.NET数据库通信层的最佳实践,.net,sql-server,nhibernate,ado.net,data-access-layer,.net,Sql Server,Nhibernate,Ado.net,Data Access Layer,我被要求在几个小时内实现一个新的ASP.NET应用程序,该应用程序必须访问SQL Server数据库 我想知道访问数据库的最佳(和最快)方法是什么,一个好的做法是创建一个数据访问层,但您将如何创建它 使用ADO.NET并创建一个方法运行查询(查询,参数),而不是为每个查询创建一个方法,如: getRowByID(id){ runQuery("SELECT..",id); } getRowsByDate(date){ runQuery("SELECT..",date); } 在V
运行查询(查询,参数)
,而不是为每个查询创建一个方法,如:
getRowByID(id){
runQuery("SELECT..",id);
}
getRowsByDate(date){
runQuery("SELECT..",date);
}
没错。我总是更喜欢存储过程。它们快速且易于测试,参数化值易于插入,如果出现问题,直接执行SP就很容易进行测试。以后也很容易进行更改,以及使用默认的空参数等。您主要/仅执行选择查询吗?I a总是喜欢存储过程。它们快速且易于测试,参数化值易于插入,如果出现问题,直接执行SP就很容易进行测试。以后也很容易进行更改,以及使用默认的空参数等。您主要/仅执行选择查询吗?如果我需要执行使用数据库的应用程序快速—我使用Linq to Sql。它简单明了。如果我需要快速开发使用数据库的应用程序,我使用Linq to Sql。它简单明了。因此,正如@TomTom所说,使用类似ORM的实体框架加上Linq是访问数据库的一种非常快速的方式,它让您的应用程序非常灵活,您可以轻松地更改后台数据库,而无需更改数据访问层中的一行(只需将提供程序更改为正确的提供程序)
当然,使用ORM意味着您将以某种方式获得自动生成的代码,而且速度肯定不会像您手工编写代码那样快。但这仍然是迄今为止您能找到的有关Microsoft提供的数据访问的最快解决方案。因此,正如@TomTom所说,使用类似ORM的实体框架加上LINQ是一个非常简单的方法k访问数据库的方式,它使您的应用程序非常灵活,因为您可以轻松地更改后台数据库,而无需更改数据访问层中的一行(您只需将提供程序更改为正确的提供程序)
当然,使用ORMs意味着您将以某种方式获得自动生成的代码,而且速度肯定不会像您手工编写代码那样快。但这仍然是迄今为止您能找到的有关Microsoft提供的数据访问的最快解决方案。我更喜欢使用EF或Linq来编写SQL。快速且首先。而且我不需要编写SQ代码中的L语句。因为它是语言集成查询(LINQ)的对象之一。我也喜欢Visual Studio的IntelliSense在LINQ中显示表名、列名,这也减少了我的调试时间。我更喜欢使用EF或LINQ to SQL。快速且优先。而且我不需要在代码中编写SQL语句。因为它是语言集成查询(LINQ)的对象之一。我也喜欢Visual Studio的IntelliSense在LINQ中显示表名和列名,这也减少了我的调试时间。执行选项3,只需使用BLToolkit,这里有一个链接-> 只需查看演示项目
如果您想要一个简单的抽象,请选择BLToolkit,当然不是EF执行选项3,只需使用BLToolkit,这里有一个链接-> 只需查看演示项目
如果你想有一个简单的抽象选择BLToolkit,当然不是EFEF应该是非常快速和容易的。它可以归结为你对3个选项中的每一个都有多少经验。我只会使用选项#3-在你的代码中为你提供一个很好的基于对象的编程接口,并将所有血淋淋的细节留给ORM很糟糕(一种方法可以解决所有问题),我不确定你所说的#2…是什么意思,如果你不想要任何生成的代码(为什么会…),你对直接的SQL语句很满意,看一看-一个在这个网站上使用的微型ORM。非常简单,非常快速,非常通用-可以使用直接的SQL语句,没有可视化的模型设计器或其他任何东西…@marc#s我同意你关于#3,关于#2的看法:我的意思是这样的。但是你为什么认为#1不好?将有一种方法处理与数据库的实际通信,以及使用它传递正确的查询字符串和参数的其他方法…我觉得它很干净(它基于此函数,但将带有查询字符串的部分与实际连接到数据库的代码分离…(感谢您的帮助)EF应该是非常快速和容易的。它可以归结为你对这3个选项有多少经验。我只会使用选项#3-在你的代码中给你一个很好的基于对象的编程接口,并将所有血淋淋的细节留给ORM。1非常糟糕(eve的一种方法)