EF Core 从元数据中获取反向导航 属性

EF Core getting inverse navigation property from metadata

考虑模型 TodoItemPerson

的以下设置
modelBuilder.Entity<TodoItem>()
    .HasOne(t => t.Assignee)
    // for simplicity lets assume a Person is assigned to only TodoItem
    .WithOne(p => p.AssignedItem)
    .HasForeignKey(t => t.AssigneeId);

modelBuilder.Entity<TodoItem>()
    .HasOne(t => t.Reviewer)
    .WithOne(p => p.ReviewItem) 
    // for simplicity lets assume a Person owns only one TodoItem
    .HasForeignKey(t => t.ReviewerId);

反思,可能使用Microsoft.EntityFrameworkCore.Metadata,我怎么弄清楚

我想我正在尝试弄清楚如何访问 modelBuilder.Hasxxx( ... ) and modelBuilder.Withxxx( ... ) 方法中的配置集。

我需要这个,因为我正在反射性地遍历嵌套数据结构的查询结果集,需要确保我的算法是前瞻性的。

EF Core 元数据中的导航由 INavigation interface. They can be obtained from IEntityType using GetNavigations or FindNavigation 扩展方法表示。

一旦你有了INavigation,就可以用FindInverse扩展方法获得反向导航(如果存在的话)。

您可以在我对 的回答中看到示例导航遍历。