给定一个主键,是否可以在 EF Core 模型中找到所有外键?

Given a primary key, is it possible to find all foreign keys in EF Core model?

我正在使用一个相当大的 EF 核心模型,该模型具有在代码中定义的所有 table 和关系,最终附加到上下文对象。如果我有一个主键,是否有 clean/efficient 方法来获取模型中的所有依赖列?

作为我正在使用的示例,此代码段用于查找给定 table 的主键名称(table 以其类型 T 为人所知,它是一个参数到此代码所在的函数):

var keyName = context.Model.FindEntityType(typeof (T)).FindPrimaryKey().Properties.Select(x => x.Name).Single();

我在浏览关键对象的属性时找到了答案。不是获取名称,而是获取对象本身,然后调用这两个其他方法来获取引用主键的外键:

var key = context.Model.FindEntityType(typeof (T)).FindPrimaryKey().Properties.FirstOrDefault();
var foreignkeys = key.GetContainingPrimaryKey().GetReferencingForeignKeys();