我正在查询SQL Server以获取所有列,这些列被引用到其他列。我意外地看到,“tenantId”栏(表“AbpUsers”)没有引用AbpTenants.Id。
我问了一些同事,他们“习惯”了解aspnetboilerplate,只是为了澄清。像我一样,每个人都感到惊讶。
仅出于测试目的,我通过“Update-database”创建了一个新数据库。在运行应用程序之前,我手动添加了“缺少”的外键引用。和?没啥事儿。没有发生什么坏事。一切正常,因为没有外键参考......
ALTER TABLE [dbo].[AbpUsers] WITH CHECK ADD CONSTRAINT [FK_AbpUsers_AbpTenants_TenantId] FOREIGN KEY([TenantId])
REFERENCES [dbo].[AbpTenants] ([Id])
GO
ALTER TABLE [dbo].[AbpUsers] CHECK CONSTRAINT [FK_AbpUsers_AbpTenants_TenantId]
GO
正如预期的那样,即使初始内容构建器正在运行,我的整个应用程
密钥的存在主要是为了保护数据库的引用完整性。如果您没有启用级联更新或级联删除选项,则可能会删除此密钥,以便让不知道自己在做什么的人更容易删除。