gpt4 book ai didi

json - 如何在 Entity Framework 中添加 JSON 检查约束?

转载 作者:行者123 更新时间:2023-12-02 09:49:23 26 4
gpt4 key购买 nike

为表字段添加 JSON CHECK CONSTRAINT

ALTER TABLE [dbo].[Data]  
ADD CONSTRAINT [JsonData must be formatted as JSON]
CHECK (IsJson([JsonData]) > 0)

工作正常,但我想让它适用于 Code First。

我已经尝试过逆向工程代码优先,但它并不能帮助我解决这个问题。使用相同的代码执行 Sql 命令(Seed() 方法) 效果很好,但这不是我想使用的解决方案之一:

protected override void Seed(MyContext context)
{
context
.Database
.ExecuteSqlCommand(
"ALTER TABLE [dbo].[Data]
ADD CONSTRAINT [JsonData must be formatted as JSON]
CHECK (IsJson([JsonData]) > 0)");
}

是否有其他方法可以从 Code First 添加 JSON 检查约束

最佳答案

根据已接受的答案,您需要添加迁移。这是 EF Core 语法:

    protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql("ALTER TABLE dbo.Data ADD CONSTRAINT CK_Data_JsonData_MustBeJson CHECK (IsJson(JsonData) = 1);");
}

protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql("ALTER TABLE dbo.Applications DROP CONSTRAINT CK_Data_JsonData_MustBeJson;");
}

关于json - 如何在 Entity Framework 中添加 JSON 检查约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39702867/

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