Dot-Net-Core
為什麼在 .net core 3 中刪除了 Relational() 擴展方法?
IMutableEntityTypeEF Core 2.0 在介面中有一個名為 Relational 的擴展方法。Pluralizer pluralizer = new Pluralizer(); foreach (IMutableEntityType entityType in modelBuilder.Model.GetEntityTypes()) { string tableName = entityType.Relational().TableName; entityType.Relational().TableName = pluralizer.Pluralize(tableName); }在 Pluralizer 庫的幫助下,我能夠使用它來複數表名。
但是在 .NET Core 3.0 中,這個方法是不存在的。
誰能幫助我並給我一個簡短的解釋?
根據此問題, EF Core 3 中的語法已稍作更改,這是新版本:
Pluralizer pluralizer = new Pluralizer(); foreach (IMutableEntityType entityType in modelBuilder.Model.GetEntityTypes()) { string tableName = entityType.GetTableName(); entityType.SetTableName(pluralizer.Pluralize(tableName)); }
foreach (var entity in modelBuilder.Model.GetEntityTypes()) { // Replace table names //entity.Relational().TableName = entity.Relational().TableName.ToSnakeCase(); entity.SetTableName(entity.GetTableName().ToSnakeCase()); // Replace column names foreach (var property in entity.GetProperties()) { property.SetColumnName(property.Name.ToSnakeCase()); } foreach (var key in entity.GetKeys()) { key.SetName(key.GetName().ToSnakeCase()); } foreach (var key in entity.GetForeignKeys()) { key.PrincipalKey.SetName(key.PrincipalKey.GetName().ToSnakeCase()); } foreach (var index in entity.GetIndexes()) { index.SetName(index.GetName().ToSnakeCase()); } }