Sql server 2005 我是否需要使用Linq2SQL存储过程?

Sql server 2005 我是否需要使用Linq2SQL存储过程?,sql-server-2005,linq-to-sql,stored-procedures,.net-3.5,Sql Server 2005,Linq To Sql,Stored Procedures,.net 3.5,我刚开始使用LINQtoSQL,我突然想到,我真的不需要数据库中的任何存储过程,因为我可以通过LINQtoSQL进行所有数据访问 是否有任何理由使用Linq到SQL编写存储过程 谢谢。可能与现有数据库接口,该数据库要求通过一组受控存储过程进行所有数据检索 或者可能有一个构造很难(不可能?)在Linq2SQL中实现 可能与现有数据库接口,该数据库要求通过一组受控存储过程进行所有数据检索 或者可能有一个构造很难(不可能?)在Linq2SQL中实现 更不用说了,依我看,但在某些情况下,使用存储过程或表

我刚开始使用LINQtoSQL,我突然想到,我真的不需要数据库中的任何存储过程,因为我可以通过LINQtoSQL进行所有数据访问

是否有任何理由使用Linq到SQL编写存储过程


谢谢。

可能与现有数据库接口,该数据库要求通过一组受控存储过程进行所有数据检索

或者可能有一个构造很难(不可能?)在Linq2SQL中实现


可能与现有数据库接口,该数据库要求通过一组受控存储过程进行所有数据检索

或者可能有一个构造很难(不可能?)在Linq2SQL中实现


更不用说了,依我看,但在某些情况下,使用存储过程或表值函数还是有用的。当然,LinqToSQL并不排除使用存储过程,因此如果需要,您仍然可以使用它们。例如,我使用表值函数对表联接执行参数化查询,以支持多变量过滤器。这可以大大简化您的代码,并使您能够优化查询。

更不用说了,IMO,但在某些情况下,使用存储过程或表值函数仍然是有用的。当然,LinqToSQL并不排除使用存储过程,因此如果需要,您仍然可以使用它们。例如,我使用表值函数对表联接执行参数化查询,以支持多变量过滤器。这可以极大地简化代码,并使您能够优化查询。

在新的应用程序中通常没有很好的理由编写存储过程

原因是有很多更好的技术可以在应用程序中执行数据访问。有许多对象关系映射技术可用于几十种语言和平台


存储过程的一个理由是,它们在数据库前面呈现抽象API。问题是,SQL对于编写高级业务程序来说是一种非常糟糕的语言。另一个问题是,您将从SQL以外的语言使用数据库前面的API。像C#、Ruby和Haskell这样的语言提供了在数据库前面创建API的更强大的方法,在这些语言中使用这些方法时更自然。

通常没有很好的理由在新的应用程序中编写存储过程

原因是有很多更好的技术可以在应用程序中执行数据访问。有许多对象关系映射技术可用于几十种语言和平台


存储过程的一个理由是,它们在数据库前面呈现抽象API。问题是,SQL对于编写高级业务程序来说是一种非常糟糕的语言。另一个问题是,您将从SQL以外的语言使用数据库前面的API。像C#、Ruby和Haskell这样的语言提供了在数据库前面创建API的更强大的方法,在这些语言中使用这些方法更自然。

存储过程非常重要。LinkToSQL需要直接访问才能插入、更新、删除和选择表中的数据。这意味着,如果您的站点或应用程序未正确检查用户输入,则您的数据库将受到数据库注入攻击


使用存储过程时,这不是问题,因为登录数据库的用户没有直接的表访问权限。授予存储过程访问权限,使UI能够访问表,但只能在存储过程的上下文中进行访问。

存储过程非常重要。LinkToSQL需要直接访问才能插入、更新、删除和选择表中的数据。这意味着,如果您的站点或应用程序未正确检查用户输入,则您的数据库将受到数据库注入攻击


使用存储过程时,这不是问题,因为登录数据库的用户没有直接的表访问权限。对存储过程授予了访问权限,这使UI可以访问表,但只能在存储过程的上下文中进行访问。

我担心您刚刚走上了一个废弃的矿井

存储过程与否是一个非常热门的话题,而且(在我看来)通常归结为DB/SQL专家与“普通”开发人员之间的斗争。双方都在尽可能多地得到羽绒被


请查看此链接,以及随后的冗长辩论。

我担心您刚刚走上了一个宗教矿井

存储过程与否是一个非常热门的话题,而且(在我看来)通常归结为DB/SQL专家与“普通”开发人员之间的斗争。双方都在尽可能多地得到羽绒被


查看此链接以及随后的冗长辩论。

存储过程以何种方式比L2S生成的代码更安全?我认为L2S与SP适用相同的“最少权限”策略,而不是?使用存储过程时,您不必仅将应用程序帐户对表的权限授予存储过程,使用L2S时,用户需要直接访问表。对于应用程序需要从中删除数据的表,这为SQL注入攻击留下了机会。存储过程以何种方式比L2S生成的代码更安全?我认为L2S与SP适用相同的“最少权限”策略,而不是?使用存储过程时,您不必仅将应用程序帐户对表的权限授予存储过程,使用L2S时,用户需要直接访问表。对于应用程序需要从中删除数据的表,这为SQL注入攻击留下了机会。