存储过程或在c#文件上编写查询

时间:2014-05-18 09:09:45

标签: c# sql-server stored-procedures

我正在开发一个基于.net C#的基于桌面的应用程序....而且我决定是在存储过程中还是在我的.cs文件本身上编写查询...这个桌面应用程序有一个搜索/过滤器/报告查询很多....并且在开发之后我必须移动我的应用程序'数据库到互联网上托管的服务器....因此,服务器的成本较低,交易效率更高......

我请你讨好你的问题..

PS ::我是开发的新手......如果有什么不对的话,我会道歉:)

2 个答案:

答案 0 :(得分:0)

这往往是一个偏好问题。对于简单的查询(即选择id,来自联系人的名称),我通常会将这些内联编写(使用dapper作为ORM),并且非常乐意以这种方式工作。

对于更复杂的查询,即具有大量复杂排序,过滤器等的多表连接,我倾向于将该代码放入SP并调用SP以获得结果(再次使用dapper)。

在c#中构建sql并使用它调用服务器与执行SP执行相同的操作没有太大的区别,在某些情况下SP方法可能略有优势。

通常归结为您的技能和对生产系统的访问权限。在较大的商店中,前端开发人员很少能够在不经过严格的部署过程和通过DBA看门人的情况下修改生产中的存储过程 - 这将倾向于(无论好坏)经常导致这些开发人员将更多代码移到前端而不是数据库中。

另一方面,如果您对前端和后端有完全无限制的访问权限,有时可以在生产中调整存储过程,而无需重新部署代码

真的不是正确的方式(或错误的方式) - 它将取决于很多事情。

答案 1 :(得分:0)

从我的角度来看,它在很大程度上取决于你所处的情况。当你在代码文件(c#)中查询时,对于每一段代码的更改,你必须重新编译你的所有程序并再次发布它而这又是一个耗费时间和能量的过程,在这种情况下,会让你遇到甚至可能导致项目失败的非常困难的情况。

作为新手,我强烈建议您将代码文件与业务规则和存储过程分开。