假设您出于某种原因无法使用 LINQ,那么将查询放在存储过程中是否是更好的做法,或者执行起来也同样好ad hoc针对数据库的查询(为了论证,例如 SQL Server)?
根据我主要编写 WinForms 客户端/服务器应用程序的经验,这些是我得出的简单结论:
使用存储过程:
- 适用于任何复杂的数据工作。如果您要做的事情确实需要游标或临时表,那么在 SQL Server 中通常是最快的。
- 当您需要锁定对数据的访问时。如果您不向用户(或角色或其他)授予表访问权限,您可以确定与数据交互的唯一方法是通过您创建的 SP。
使用临时查询:
- 对于 CRUD,当您不需要限制数据访问(或以其他方式这样做)时。
- 用于简单搜索。为一堆搜索条件创建 SP 是一件痛苦且难以维护的事情。如果您可以生成相当快的搜索查询,请使用它。
在我的大多数应用程序中,我都使用了 SP 和 ad-hoc sql,但我发现我使用 SP 的次数越来越少,因为它们最终变成了像 C# 一样的代码,只是更难进行版本控制、测试和维护。我建议使用 ad-hoc sql,除非您能找到不这样做的具体原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)