我正在使用空迁移来更新数据库中的存储过程。存储过程是一个自定义存储过程,已在数据库的初始创建中添加了该过程。
我在DbMigration类中发现了“ AlterStoredProcedure”方法,该方法可以更新存储过程,但是我必须通过存储过程的参数,并且我想将布尔值的默认值和某些int值设置为null,但我似乎无法使它正常工作。
AlterStoredProcedure(
name: "[dbo].[FT_People_PersonFullTextSearch]",
parametersAction:
p => new {
searchTerm = p.String(600),
isArchived = p.Boolean(false),
isActive = p.Boolean(null),
genderFilter = p.Int(null),
rankingFilter = p.Int(null)
},
body: "the body of my stored proc....");
上面的代码产生
ALTER PROCEDURE [dbo].[FT_People_PersonFullTextSearch]
@searchTerm [nvarchar](600),
@isArchived [bit] = 0,
@isActive [bit],
@genderFilter [int],
@rankingFilter [int]
AS
BEGIN
代替
ALTER PROCEDURE [dbo].[FT_People_PersonFullTextSearch]
@searchTerm nvarchar(600),
@isArchived bit = 0,
@isActive bit = null,
@genderFilter int = null,
@rankingFilter int = null
AS
BEGIN
有谁知道如何获取要产生的参数@isActive bit = null
?
我正在使用Entity Framework 6.1.1,并且可以通过执行以下操作来实现此目的:
AlterStoredProcedure(
name: "[dbo].[FT_People_PersonFullTextSearch]",
parametersAction:
p => new {
searchTerm = p.String(600),
isArchived = p.Boolean(false),
isActive = p.Boolean(null, "null"),
genderFilter = p.Int(null, "null"),
rankingFilter = p.Int(null, "null")
},
body: "the body of my stored proc....");
请注意,我只是将解决方案插入到您的示例代码中,实际上并没有尝试运行此确切的代码。
我要在其中设置的特定参数是defaultValueSql: "null"
。
这给了我一个存储过程,看起来像这样:
ALTER PROCEDURE [dbo].[FT_People_PersonFullTextSearch]
@searchTerm nvarchar(600),
@isArchived bit = 0,
@isActive bit = null,
@genderFilter int = null,
@rankingFilter int = null
AS
BEGIN
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句