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

时间:2014-03-06 01:30:40

标签: c# entity-framework naming-conventions entity-framework-6

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

builder.Conventions.Add(new UnderscorelessForeignKeyNamingConvention());

以下代码

class Address { City City { get; set; } }

我找不到City_Id列。 Add上的Add<>Remove<>builder.Conventions调用的哪种组合会删除现有的命名约定或有效地允许我的第一次考虑?

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

1 个答案:

答案 0 :(得分:0)

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

基于模型的约定是documented here在文档中有specific example about detecting and renaming independent association columns。编写执行此操作的约定后,您只需将其添加到约定列表中即可。