我正在查询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
正如预期的那样,即使最初的内容生成器正在运行,我的整个应用程序也能正常工作。
答案 0 :(得分:0)
密钥的存在主要是为了保护数据库的引用完整性。如果您没有启用“级联更新”或“级联删除”选项,则可能已删除了此密钥,以使不知道自己在做什么的人可以更轻松地进行删除。