一、CodeSmith介绍
CodeSmith模板代码生成实战详解 https://www.cnblogs.com/knowledgesea/p/5016077.html
二、CodeSmith连接不上MySQL解决方法
在codesmith中选择MySQLSchemaProvider并连接数据库时,会报以下错误:
Test failed. 找不到请求的 .Net Framework 数据提供程序。可能没有安装。
1.如果你安装了mysql-connector-net 那么你就进安装路径里面找到 MySql.Data.dll;如果没有,访问http://dev.mysql.com/downloads/connector/net/,下载并安装mysql-connector-net-x.x.x.msi。其中x.x.x是版本号,直接下载最新版即可。
2.复制"MySql.Data.dll"到X:XXCodeSmithv*.*SchemaProviders目录下和Codesmith的Bin目录下。
3.修改CodeSmith.exe.config,添加mysql的DbProviderFactories配置(注意版本号和PublicKeyToken要与上面的MySql.Data.dll保持一致),下面以版本6.7.4.0为例,修改的CodeSmith.exe.config的配置全部代码如下;保存CodeSmith.exe.config 重新打开CodeSmith.exe 完美运行。
<?xml version="1.0"?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup> <system.data> <DbProviderFactories> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data> <system.diagnostics> <switches> <add name="CodeSmithSwitch" value="4" /> </switches> </system.diagnostics> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath="bin;AddIns;SchemaProviders"/> </assemblyBinding> </runtime> </configuration>
附上a/MySql.Data.dll(版本6.7.4.0)链接:点击下载
b、利用VS自带的命令行工具查看和生产PublicKeyToken:https://blog.csdn.net/kuui_chiu/article/details/6914049
二、CodeSmith使用
连接字符串 https://www.connectionstrings.com/
ACCESS数据库 Provider Type:ADOXSchemaProvider
1:无密码的Access链接为:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:hhdb.mdb;
2:有密码的Access链接:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:hhdb.mdb;
Jet OLEDB:Database Password=1111
Sql数据库 Provider Type:SqlSchemaProvider
server=192.1.1.14;User ID=test;Password=test;database=test;
Pooling=TRUE;Max Pool Size=1000;Connection Reset=FALSE
Oracle数据库 Provider Type:OracleSchemaProvider
1:下载提供的ORACAL 驱动
2:Data Source=192.1.1.14;Database=test;Password=test;User ID=test
MySql数据库 Provider Type:MySqlSchemaProvider
Database=test;Data Source=127.0.0.1;User Id=root;Password=password;port=3306
CodeSmith自己动手写模板 https://www.cnblogs.com/sunniest/p/4128183.html
CodeSmith无法获取MySQL表及列Description说明注释的解决方案
https://blog.csdn.net/nihaoapengyou/article/details/52587986
https://www.cnblogs.com/xinzheng/p/5809766.html