CodeSmith7鏈接Mysql

因爲CodeSmith鏈接MySql的dll有點小Bug,沒法獲取表和列的描述信息,因此,須要從新修改驅動程序。mysql

如上圖所示,CodeSmith的mysql驅動是沒法獲取表和列的描述。因此咱們須要從新修改MySQLSchemaProvide。步驟以下:sql

  1. 按照路徑,打開項目。
  2. 注意須要從新引入dll。
  3. 打開mysql客戶端程序,先查看錶結構和列結構.
  4. 打開項目,修改代碼,關鍵代碼以下:
  5. 上面是增長了表的描述列,方法的下面是表的描述,原有內容爲:
    if (schemaObject is TableSchema)
                {
                    TableSchema tableSchema = schemaObject as TableSchema;
                    string commandText = string.Format(@"SHOW CREATE TABLE `{0}`.`{1}`", tableSchema.Database.Name, tableSchema.Name);
    
                    using (DbConnection connection = CreateConnection(connectionString))
                    {
                        connection.Open();
    
                        DbCommand command = connection.CreateCommand();
                        command.CommandText = commandText;
                        command.Connection = connection;
    
                        using (IDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection))
                        {
                            while (reader.Read())
                            {
                                string createtable = reader.GetString(1);
                                extendedProperties.Add(new ExtendedProperty("CS_CreateTableScript", createtable, DbType.String));
                            }
    
                            if (!reader.IsClosed)
                                reader.Close();
                        }
    
                        if (connection.State != ConnectionState.Closed)
                            connection.Close();
                    }
                }
    
  6. 將上面的sql語句修改成Select TABLE_NAME,TABLE_COMMENT From information_schema.`TABLES` where TABLE_SCHEMA='{0}' and TABLE_NAME='{1}'。而且將extendedProperties.Add(new ExtendedProperty("CS_CreateTableScript", createtable, DbType.String));修改成 extendedProperties.Add(new ExtendedProperty("CS_Description", createtable, DbType.String));
  7. 從新編譯後,將編譯後的dll組件替換codeSmith7裏面的dll。路徑如圖
  8. 最終效果圖

若須要完成的dll,能夠留下郵件地址。抽空能夠發送完成的dll給你們。ide

相關文章
相關標籤/搜索