在下面的屏幕截图中是我模型中的实体(URL)。ParentId 字段是一个自引用的 FK(指向 Url.Id)。您可以在屏幕截图的底部看到此导航。
在我生成 EDMX 的 SQL 和数据库中,自引用 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 是 'FromRole' Urls 'ToRole' Urls1。似乎 EF 正在制作与 Url 表完全相同的导航属性。为什么它会这样做,我可以做些什么让它只生成一个所需的导航属性:Urls1?
- 好的,所以不是那么重要,但是我可以根据 FK 名称或数据库中的其他内容来控制 Navigation 属性的名称吗?我讨厌它把它命名为“Url1”。我更喜欢“父级”,但不想每次重新生成模型时都必须在设计器中手动更改它。
谢谢。