Browse Source

统一将驼峰名改成小写+下划线形式,比如AsbitemDetails改成asbitem_details

bjmzak
DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
30c5bf8208
  1. 4
      src/Shentun.Peis.EntityFrameworkCore/EntityFrameworkCore/PeisDbContext.cs
  2. 106
      src/Shentun.Peis.EntityFrameworkCore/EntityFrameworkCore/SnakeToCamelCase.cs

4
src/Shentun.Peis.EntityFrameworkCore/EntityFrameworkCore/PeisDbContext.cs

@ -490,8 +490,8 @@ public class PeisDbContext :
#endregion
//将驼峰名改成小写+下划线形式,比如AsbitemDetails改成asbitem_details
builder.ToSnakeCase();
#region 测试
builder.Entity<HelloA>(entity =>

106
src/Shentun.Peis.EntityFrameworkCore/EntityFrameworkCore/SnakeToCamelCase.cs

@ -10,68 +10,68 @@ namespace Shentun.Peis.EntityFrameworkCore
{
public static class SnakeToCamelCase
{
//[Flags]
//public enum ConvertOptions
//{
// All = 2 << 0,
// Tables = 2 << 1,
// Properties = 2 << 2,
// Keys = 2 << 3,
// ForeignKeys = 2 << 4,
// Indexes = 2 << 5,
//};
//private static Regex leadingUndescoreRegex = new Regex(@"^_", RegexOptions.Compiled);
//private static Regex camelCaseRegex = new Regex(@"([a-z0-9])([A-Z])", RegexOptions.Compiled);
[Flags]
public enum ConvertOptions
{
All = 2 << 0,
Tables = 2 << 1,
Properties = 2 << 2,
Keys = 2 << 3,
ForeignKeys = 2 << 4,
Indexes = 2 << 5,
};
private static Regex leadingUndescoreRegex = new Regex(@"^_", RegexOptions.Compiled);
private static Regex camelCaseRegex = new Regex(@"([a-z0-9])([A-Z])", RegexOptions.Compiled);
//public static string ToSnakeCase(this string input)
//{
// if (string.IsNullOrEmpty(input)) { return input; }
public static string ToSnakeCase(this string input)
{
if (string.IsNullOrEmpty(input)) { return input; }
// var noLeadingUndescore = leadingUndescoreRegex.Replace(input, "");
// return camelCaseRegex.Replace(noLeadingUndescore, "$1_$2").ToLower();
//}
var noLeadingUndescore = leadingUndescoreRegex.Replace(input, "");
return camelCaseRegex.Replace(noLeadingUndescore, "$1_$2").ToLower();
}
//public static void ToSnakeCase(this ModelBuilder modelBuilder, ConvertOptions options = ConvertOptions.All)
//{
// bool convertAll = (options & ConvertOptions.All) == ConvertOptions.All;
// bool convertTables = (options & ConvertOptions.Tables) == ConvertOptions.Tables;
// bool convertProperties = (options & ConvertOptions.Properties) == ConvertOptions.Properties;
// bool convertKeys = (options & ConvertOptions.Keys) == ConvertOptions.Keys;
// bool convertForeignKeys = (options & ConvertOptions.ForeignKeys) == ConvertOptions.ForeignKeys;
// bool convertIndexes = (options & ConvertOptions.Indexes) == ConvertOptions.Indexes;
public static void ToSnakeCase(this ModelBuilder modelBuilder, ConvertOptions options = ConvertOptions.All)
{
bool convertAll = (options & ConvertOptions.All) == ConvertOptions.All;
bool convertTables = (options & ConvertOptions.Tables) == ConvertOptions.Tables;
bool convertProperties = (options & ConvertOptions.Properties) == ConvertOptions.Properties;
bool convertKeys = (options & ConvertOptions.Keys) == ConvertOptions.Keys;
bool convertForeignKeys = (options & ConvertOptions.ForeignKeys) == ConvertOptions.ForeignKeys;
bool convertIndexes = (options & ConvertOptions.Indexes) == ConvertOptions.Indexes;
// foreach (var entity in modelBuilder.Model.GetEntityTypes())
// {
// if (convertAll || convertTables)
// if (entity.BaseType == null)
// entity.SetTableName(entity.GetTableName().ToSnakeCase());
foreach (var entity in modelBuilder.Model.GetEntityTypes())
{
if (convertAll || convertTables)
if (entity.BaseType == null)
entity.SetTableName(entity.GetTableName().ToSnakeCase());
// if (convertAll || convertProperties)
// foreach (var property in entity.GetProperties())
// {
// property.SetColumnName(property.GetDefaultColumnName() .GetColumnName().ToSnakeCase());
// }
if (convertAll || convertProperties)
foreach (var property in entity.GetProperties())
{
property.SetColumnName(property.GetColumnName().ToSnakeCase());
}
// if (convertAll || convertKeys)
// foreach (var key in entity.GetKeys())
// {
// key.SetName(key.GetName().ToSnakeCase());
// }
if (convertAll || convertKeys)
foreach (var key in entity.GetKeys())
{
key.SetName(key.GetName().ToSnakeCase());
}
// if (convertAll || convertForeignKeys)
// foreach (var key in entity.GetForeignKeys())
// {
// key.SetConstraintName(key.GetConstraintName().ToSnakeCase());
// }
if (convertAll || convertForeignKeys)
foreach (var key in entity.GetForeignKeys())
{
key.SetConstraintName(key.GetConstraintName().ToSnakeCase());
}
// if (convertAll || convertIndexes)
// foreach (var index in entity.GetIndexes())
// {
if (convertAll || convertIndexes)
foreach (var index in entity.GetIndexes())
{
// //index.SetName(index.GetName().ToSnakeCase());
// }
// }
//}
//index.SetName(index.GetName().ToSnakeCase());
}
}
}
}
}
Loading…
Cancel
Save