gpt4 book ai didi

stored-procedures - Subsonic 3.0.0.3 不为存储过程生成参数

转载 作者:行者123 更新时间:2023-12-04 06:00:23 26 4
gpt4 key购买 nike

我有一个带有一堆存储过程的 SQL Server 2008 数据库。当我使用 Subsonic 3.0.0.3 提供的 ActiveRecord 模板时,它为我的所有存储过程生成方法,但它们没有任何参数。我是服务器上的 dbo,可以从 Management Studio 毫无问题地执行存储过程。

示例存储过程

CREATE PROCEDURE [dbo].[prc_Sample]
@FileName VARCHAR(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

IF EXISTS ( SELECT * FROM Sample WHERE FileName = @FileName )
BEGIN
RETURN -1
END

RETURN 0

END

样本生成方法
public StoredProcedure prc_Sample(){
StoredProcedure sp=new StoredProcedure("prc_Sample",this.Provider);
return sp;
}

如果我检查 SQLServer.ttinclude,我可以看到所有获取存储过程的方法都在那里,但由于某种原因它们没有生成。并且这不是在存储过程名称中有下划线的问题 - 这在有和没有下划线的情况下都会被破坏。

任何想法或任何人都知道如何调试模板文件?

最佳答案

我遇到了同样的问题,我不得不调整 SQLServer.ttinclude让它工作。在该文件中找到 GetSPParams()方法并更改一行:


string[] restrictions = new string[4] { DatabaseName, null, spName, null };


string[] restrictions = new string[3] { null, null, spName };

.

BlackMael 的回答有一个有用的链接,帮助我弄清楚如何调试和单步执行模板代码。

现在我还不能 100% 确定我的更改是好的(可能会有一些不利影响)。我只是没有机会彻底测试它,需要在 Restrictions 上阅读更多内容。因为它们与 GetSchema() 有关方法。但是现在,这解决了我的问题,我可以成功传递我存储的 proc 参数。

更新:这可能与我的 DB 文件嵌入在 App_Data 中的 VS 解决方案中的事实有关。也许这对于独立的 SQL Server 实例开箱即用效果更好。

关于stored-procedures - Subsonic 3.0.0.3 不为存储过程生成参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1349201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com