实体类生成模板下载:
链接:https://pan.baidu.com/s/1tLxW5m5ECwVV2feWSVtQIA
提取码:qezw
反编译工具下载:
链接:https://pan.baidu.com/s/19dG4NweQodLl0yG5XQrcOg
提取码:r793
一、使用反编译工具dnSpy打开D:\software\generator71(1)\generator-71\SchemaProviders\SchemaExplorer.MySQLSchemaProvider.dll
二、找到MySQLSchemaProvider类
三、找到GetExtendedProperties方法名,使用反编译工具编辑该类,替换GetExtendedProperties的代码逻辑并进行保存
public ExtendedProperty[] GetExtendedProperties(string connectionString, SchemaObjectBase schemaObject)
{
List list = new List();
if (schemaObject is ColumnSchema)
{
ColumnSchema columnSchema = schemaObject as ColumnSchema;
string commandText = string.Format("SELECT EXTRA, COLUMN_DEFAULT, COLUMN_TYPE, COLUMN_COMMENT\r\n FROM INFORMATION_SCHEMA.COLUMNS\r\n WHERE TABLE_SCHEMA = '{0}' AND TABLE_NAME = '{1}' AND COLUMN_NAME = '{2}'", columnSchema.Table.Database.Name, columnSchema.Table.Name, columnSchema.Name);
using (DbConnection dbConnection = MySQLSchemaProvider.CreateConnection(connectionString))
{
dbConnection.Open();
DbCommand dbCommand = dbConnection.CreateCommand();
dbCommand.CommandText = commandText;
dbCommand.Connection = dbConnection;
using (IDataReader dataReader = dbCommand.ExecuteReader(CommandBehavior.CloseConnection))
{
while (dataReader.Read())
{
string text = dataReader.GetString(0).ToLower();
bool flag = dataReader.IsDBNull(1);
string value = "";
if (!flag)
{
value = dataReader.GetString(1).ToUpper();
}
string value2 = dataReader.GetString(2).ToUpper();
string @string = dataReader.GetString(3);
bool flag2 = text.IndexOf("auto_increment") > -1;
list.Add(new ExtendedProperty("CS_IsIdentity", flag2, columnSchema.DataType));
if (flag2)
{
list.Add(new ExtendedProperty("CS_IdentitySeed", 1, columnSchema.DataType));
list.Add(new ExtendedProperty("CS_IdentityIncrement", 1, columnSchema.DataType));
}
list.Add(new ExtendedProperty("CS_ColumnDefaultIsNull", flag, DbType.Boolean));
list.Add(new ExtendedProperty("CS_Default", value, DbType.String));
list.Add(new ExtendedProperty("CS_ColumnDefault", value, DbType.String));
list.Add(new ExtendedProperty("CS_SystemType", value2, DbType.String));
list.Add(new ExtendedProperty("CS_ColumnType", value2, DbType.String));
list.Add(new ExtendedProperty("CS_ColumnExtra", text.ToUpper(), DbType.String));
list.Add(new ExtendedProperty("CS_Description", @string, DbType.String));
}
if (!dataReader.IsClosed)
{
dataReader.Close();
}
}
if (dbConnection.State != ConnectionState.Closed)
{
dbConnection.Close();
}
}
}
if (schemaObject is TableSchema)
{
TableSchema tableSchema = schemaObject as TableSchema;
string commandText2 = string.Format("SHOW CREATE TABLE {0}
.{1}
", tableSchema.Database.Name, tableSchema.Name);
using (DbConnection dbConnection2 = MySQLSchemaProvider.CreateConnection(connectionString))
{
dbConnection2.Open();
DbCommand dbCommand2 = dbConnection2.CreateCommand();
dbCommand2.CommandText = commandText2;
dbCommand2.Connection = dbConnection2;
using (IDataReader dataReader2 = dbCommand2.ExecuteReader(CommandBehavior.CloseConnection))
{
while (dataReader2.Read())
{
string string2 = dataReader2.GetString(1);
list.Add(new ExtendedProperty("TS_Description", string2, DbType.String));
int num = string2.LastIndexOf("ENGINE");
int num2 = string2.LastIndexOf("COMMENT=");
string value3 = dataReader2.GetString(0);
if (num2 > num)
{
value3 = string2.Substring(num2 + 9).Replace("'", "");
}
list.Add(new ExtendedProperty("CS_Description", value3, DbType.String));
}
if (!dataReader2.IsClosed)
{
dataReader2.Close();
}
}
if (dbConnection2.State != ConnectionState.Closed)
{
dbConnection2.Close();
}
}
}
return list.ToArray();
}
四、生成效果
Original: https://www.cnblogs.com/sportsky/p/16722007.html
Author: SportSky
Title: CodeSmith无法获取MySQL表及列Description说明处理
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/609220/
转载文章受原作者版权保护。转载请注明原作者出处!