Sql server CFQL/存储过程方法中的数组参数
是否可以将参数数组传递给通过CFQL生成的存储过程 我们从designer生成方法,没有任何问题。但我还没有找到在SQLServer上单元执行它的方法 尝试通过代码执行时,代码将失败,并出现给定错误: 操作数类型冲突:表类型与int不兼容 在生成的行上:Sql server CFQL/存储过程方法中的数组参数,sql-server,codefluent,Sql Server,Codefluent,是否可以将参数数组传递给通过CFQL生成的存储过程 我们从designer生成方法,没有任何问题。但我还没有找到在SQLServer上单元执行它的方法 尝试通过代码执行时,代码将失败,并出现给定错误: 操作数类型冲突:表类型与int不兼容 在生成的行上: System.Data.IDataReader reader = CodeFluentContext.Get(XYZ.Constants.XYZCodeFluentStoreName).Persistence.ExecuteReader();
System.Data.IDataReader reader = CodeFluentContext.Get(XYZ.Constants.XYZCodeFluentStoreName).Persistence.ExecuteReader();
CFQL正文如下:
LOAD (enumABCGroup[] groups) WHERE ABC.Group IN (@groups) ORDER BY NumberExt
生成的过程是:
CREATE PROCEDURE [XYZ].[ABC_LoadByGroups]
(
@groups [int],
@_orderBy0 [nvarchar] (64) = NULL,
@_orderByDirection0 [bit] = 0
)
AS
SET NOCOUNT ON
SELECT DISTINCT ...
FROM [XYZ].[ABC]
WHERE [XYZ].[ABC].[ABC_Group] IN (@groups)
ORDER BY [XYZ].[ABC].[ABC_Group] ASC, [XYZ].[ABC].[ABC_Label] ASC
RETURN
GO
底层数据库系统是SQL Server 2012(v11.0.5058.0)
谢谢你的帮助 我认为您忘记将SQL Server producer配置为至少针对SQL Server 2008: 或在XML中:
<cf:producer name="SQL Server" typeName="CodeFluent.Producers.SqlServer.SqlServerProducer, CodeFluent.Producers.SqlServer">
<cf:configuration targetVersion="Sql2008" />
</cf:producer>
以下是一些关于CodeFluent实体和TVP的有用资源: