We have our own external convention of naming objects and I need to change the naming convention for the auto generated foreign key constraints. Now it looks like: FK_dbo.City_dbo.CityType_City_CityTypeId
but I would like it to be called City_FKC_CityType
.
I found a similar question which says that you can change the name of constraints manually. However, this does not suit me, since I have a lot of tables and foreign key constraints.
I found some information about "Custom Code First Conventions" and I am wondering if I can change the name of constraint using this or if there are any methods to implement it?
Another variant is download the source code of EF, make changes and use that but that is in case of emergency.
As a side note, I would also like to change the naming convention of the primary key.
You can implement a custom sql generator class derived from
SqlServerMigrationSqlGenerator
fromSystem.Data.Entity.SqlServer
namespace:Then you need to register your generator in
DbContext
usingDbConfiguration
:And
DbConfigurationTypeAttribute
:UPDATE: If you want to change a primary key name, you need to override following
Generate
methods: