public void GetWordsTest_MyColumnName() { try { ObjectFactory.Current.Register(typeof(EnglishWords)); var nf = new NameFormatter(); ColumnName cn = nf.GetColumnName("MY_COLUMN_NAME_", WordsExtraction.FromDictionary, EnglishNameFormat); Assert.AreEqual("MyColumnName", cn.PropertyName); cn = nf.GetColumnName("MY_COLUMN_NAME_", WordsExtraction.FromDictionary, EnglishNameFormatCamelCase); Assert.AreEqual("myColumnName", cn.PropertyName); } finally { ObjectFactory.Current.Unregister(typeof(EnglishWords)); } }
/// <summary> /// Creates the name of the column. /// </summary> /// <param name="dbColumnName">Name of the db column.</param> /// <param name="dbTableName">Name of the db table.</param> /// <param name="dbSchema">The db schema.</param> /// <param name="nameAliases">The name aliases.</param> /// <param name="nameFormat">The name format.</param> /// <returns></returns> protected virtual ColumnName CreateColumnName(string dbColumnName, string dbTableName, string dbSchema, INameAliases nameAliases, NameFormat nameFormat) { var columnNameAlias = nameAliases != null?nameAliases.GetColumnMemberAlias(dbColumnName, dbTableName, dbSchema) : null; WordsExtraction extraction; if (columnNameAlias != null) { extraction = WordsExtraction.None; } else { extraction = GetExtraction(dbColumnName); columnNameAlias = dbColumnName; } var columnName = NameFormatter.GetColumnName(columnNameAlias, extraction, nameFormat); // The member name can not be the same as the class // we add a "1" (just like SqlMetal does) var tableName = CreateTableName(dbTableName, dbSchema, nameAliases, nameFormat); if (columnName.PropertyName == tableName.ClassName) { columnName.PropertyName = columnName.PropertyName + "1"; } if (startsWithNumber.IsMatch(columnName.PropertyName)) { columnName.PropertyName = "_" + columnName.PropertyName; } columnName.DbName = dbColumnName; return(columnName); }