自我引用FK迅速产生
-
10-10-2019 - |
题
在下面的屏幕截图中,是我的模型中的一个实体(URL)。 parentid字段是自我引用的FK(指向url.id)。您可以在屏幕截图的底部看到此导航。
在我的SQL和DB中,我从中生成EDMX的DB中,自我引用FK称为fk_urls_parent:
-- Creating foreign key on [ParentId] in table 'Urls'
ALTER TABLE [Urls]
ADD CONSTRAINT [FK_Urls_Parent]
FOREIGN KEY ([ParentId])
REFERENCES [Urls]
([Id])
ON DELETE NO ACTION ON UPDATE NO ACTION;
我的问题是:
- 为什么EF仅从该FK产生URLS1和URL1? URL1是0或1个属性,是“ Fromrole” URLS1。 URLS1是“从role” URLS“ torole” URLS1。似乎EF正在制作与URL表完全相同的导航属性。为什么要这样做,我可以做一些事情来使它仅生成所需的导航属性:urls1?
- 好的,所以不太重要,但是我可以根据FK名称或DB中的其他内容来控制导航属性的名称吗?我讨厌它将其命名为“ url1”。我更喜欢“父母”,但不想每次再生模型时都必须在设计师中手动更改它。
谢谢。
解决方案
它正在建模关系的双方。换句话说,其中一个属性将是该条目指向的条目 ParentId
. 。另一个将是该条目 ParentId
字段指向此条目。您可以在关系属性中禁用一侧,也可以将其重命名以使其有意义。例如,例如 ParentUrl
和 ChildUrls
.
我不是100%确定如何在没有自己打开程序的情况下如何进入属性关系对话框,而我现在不能。 I do know for me it appears in the (by default) bottom-right properties window when the link is selected.
至于在模型再生中以某种方式永久性变化,我知道这是没有办法的。希望其他人会知道,因为这也可以节省我很多时间!
不隶属于 StackOverflow