ChangingtheNamingConventionofForeignKeyConstraints我们有自己的外部对象命名约定,我需要更改自动生成的外键约束的命名约定。现在它看起来像:FK_dbo.City_dbo.CityType_City_CityTypeId但我希望它被称为City_FKC_CityType。我发现了一个类似的问题,说你可以手动更改约束的名称。但是,这对我不起作用,因为我有很多表和外键约束。我发现了一些关于“自定义代码优先约定”的内容,我想知道我是否可以使用它来更改约束的名称,或者有什么方法可以实现它?另一种变体是下载EF的源代码,进行更改并使用它,但在紧急情况下。作为旁注,我还想更改主键的命名约定。您您您可以系统.DependentTable,addForeignKeyOperation.DependentColumns.ToArray());base.Generate(addForeignKeyOperation);}protectedoverridevoidGenerate(DropForeignKeyOperationdropForeignKeyOperation){dropForeignKeyOperation.Name=getFkName(dropForeignKeyOperation.PrincipalTable,dropForeignKeyOperation.DependentTable,dropForeignKeyOperation.DependentColumns.ToArray());base.Generate(dropForeignKeyOperation);}privatestaticstringgetFkName(stringprimaryKeyTable,stringforeignKeyTable,paramsstring[]foreignTableFields){//返回你需要的任何格式}}然后,你需要使用DbConfiguration在DbContext中注册你的生成器:公共类sCustomDbConfiguration:DbConfiguration{publicCustomDbConfiguration(){SetMigrationSqlGenerator(SqlProviderServices.ProviderInvariantName,()=>newCustomSqlGenerator());}}和DbConfigurationTypeAttribute:[DbConfigurationType(typeof(CustomDbConfiguration))]publicclassYourEntities:DbContext更新:如果要修改主键名,需要重写下面的Generate方法:以上是C#学习教程:改变外键约束命名约定分享所有内容,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注——createTableOperation.Name);base.Generate(createTableOperation);}protectedoverridevoidGenerate(AddPrimaryKeyOperationaddPrimaryKeyOperation){addTablePrimaryKeyOperation.Name=getPkPkName;生成(addPrimaryKeyOperation);}protectedoverridevoidGenerate(DropPrimaryKeyOperationdropPrimaryKeyOperation){dropPrimaryKeyOperation.Name=getPkName(dropPrimaryKeyOperation.Table);根据.Generate(dropPrimaryKeyOperation);}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处:
