C# 如何替换EF 6中的FK命名约定?

C# 如何替换EF 6中的FK命名约定?,c#,entity-framework,naming-conventions,entity-framework-6,C#,Entity Framework,Naming Conventions,Entity Framework 6,我已经为外键创建了自定义命名约定,并可以将其添加到约定中: builder.Conventions.Add(new UnderscorelessForeignKeyNamingConvention()); 对于下面的代码 class Address { City City { get; set; } } 我找不到City\u Id列。对builder.Conventions调用的Add、Add和Remove的哪种组合将删除现有的命名约定,或者实际上允许首先考虑我的命名约定 我已经查看了调试器

我已经为外键创建了自定义命名约定,并可以将其添加到约定中:

builder.Conventions.Add(new UnderscorelessForeignKeyNamingConvention());
对于下面的代码

class Address { City City { get; set; } }
我找不到
City\u Id
列。对
builder.Conventions
调用的
Add
Add
Remove
的哪种组合将删除现有的命名约定,或者实际上允许首先考虑我的命名约定


我已经查看了调试器和文档下的约定,这对我来说并不明显。

生成的外键列被EntityFramework称为独立关联。由于这些列是EntityFramework在构建模型时生成的,因此无法从自定义约定访问这些列,因此有必要使用基于模型的约定。这就是您在使用上述约定时遇到的问题


基于模型的约定在文档中有一个。一旦您编写了一个这样做的约定,您只需将其添加到约定列表中即可

一个有趣的问题+1。