由于我不允许合理化庞大且令人讨厌的数据库,因此我不得不为我的应用程序创建C#Datalayer生成器。使用T4生成Model类和Insight.Database存储库,我已经完成很多工作,但是我需要通过Sql Management Objects创建用户定义的表类型和存储过程。
我感兴趣的是,通过SMO创建时可以使用短路参数吗?我要复制的内容是这样的:
CREATE PROCEDURE [dbo].[cip_GetLicenses]
@fldIndex int = null
AS
SELECT [fldIndex]
,[fldLicenceData]
FROM [dbo].[tblLicences]
WHERE (@fldIndex is NULL OR (fldIndex = @fldIndex))
我可以使用字符串生成器和一些列迭代来相对容易地构造存储过程的主体,但是创建参数是单独完成的。
StoredProcedureParameter Type实际上确实具有DefaultValue属性,但是它是一个字符串,可悲的是将其设置为“ = null”只会在运行时引发异常。
有人可以建议吗?