我的项目是一个Xamarin.Forms应用程序,带有Azure SQL数据库和Azure移动应用程序服务。
我使用代码优先创建数据库。
现在我想将“Customer”类重命名为“Company”。 迁移已正确完成,现有表已重命名。
但是,有一个自动创建的触发器也会重命名,但不会修改使用的表名。所以触发器不再起作用了。
我认为触发器存在是因为添加到模型构建器的“ServiceTableColumn”约定。
这是生成的迁移代码:
TestRequestModel
这是触发器的脚本(执行上述迁移后):
public partial class rename_customer_to_company_step_1 : DbMigration
{
public override void Up()
{
RenameTable(name: "dbo.Customers", newName: "Companies");
}
public override void Down()
{
RenameTable(name: "dbo.Companies", newName: "Customers");
}
}
如您所见,表本身已重命名(ON [dbo]。[公司] ),但触发器的内容仍引用前一个表名(UPDATE [dbo]。[Customers])。 当然触发器不起作用。
如何正确修改触发器?触发器真的有必要吗?我可以摆脱这些触发器吗?
任何想法如何纠正这个?我不想手动更新触发器,为什么我需要使用代码优先迁移?
提前致谢,
里斯
答案 0 :(得分:0)
如果代码优先迁移没有这样做,则必须编辑代码优先迁移文件或自行更新触发器。如果这是一次性的话,触发器相对容易完成。有关详细信息,请参阅http://aka.ms/zumobook的Zumo Book第3章。