在下面的屏幕截图中,是我的模型中的一个实体(URL)。 parentid字段是自我引用的FK(指向url.id)。您可以在屏幕截图的底部看到此导航。

alt text

在我的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;

我的问题是:

  1. 为什么EF仅从该FK产生URLS1和URL1? URL1是0或1个属性,是“ Fromrole” URLS1。 URLS1是“从role” URLS“ torole” URLS1。似乎EF正在制作与URL表完全相同的导航属性。为什么要这样做,我可以做一些事情来使它仅生成所需的导航属性:urls1?
  2. 好的,所以不太重要,但是我可以根据FK名称或DB中的其他内容来控制导航属性的名称吗?我讨厌它将其命名为“ url1”。我更喜欢“父母”,但不想每次再生模型时都必须在设计师中手动更改它。

谢谢。

有帮助吗?

解决方案

它正在建模关系的双方。换句话说,其中一个属性将是该条目指向的条目 ParentId. 。另一个将是该条目 ParentId 字段指向此条目。您可以在关系属性中禁用一侧,也可以将其重命名以使其有意义。例如,例如 ParentUrlChildUrls.

我不是100%确定如何在没有自己打开程序的情况下如何进入属性关系对话框,而我现在不能。 I do know for me it appears in the (by default) bottom-right properties window when the link is selected.

至于在模型再生中以某种方式永久性变化,我知道这是没有办法的。希望其他人会知道,因为这也可以节省我很多时间!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top