解决在MySQL使用PetaPoco T4生成数据的实体时得到当前MySQL数据库下所有表的错误方法

>问题症状   

  本来打算使用PetaPoco尝尝鲜,并且大大节省编写访问数据库代码的时间,哪知半天时间就送给了T4模板生成实体的错误上。

  在准备好PetaPoco的配置后,一保存Database.tt文件就出现报错,大意是提醒某某表名已被定义,我一看,一个小小的数据库实体居然有3000多行!开始我以为是重复生成了,各种百度谷歌,没有一点答案。后来我仔细翻看生成的实体,发现生成的实体是我当前用户下所有数据库的所有表,因为有两个一样结构的数据库,所有导致字段重复才报错。于是继续谷歌,终于被我查出来原来是PetaPoco的读取MySQL的一个bug,bug链接https://github.com/toptensoftware/PetaPoco/issues/140

>解决办法   

  链接中第三人方法完美的解决了我的问题,也就是搜索  

const string TABLE_SQL=@"

SELECT *

FROM information_schema.tables

  在末尾加上

 and TABLE_SCHEMA=database()

   再次运行,问题解决!

你可能感兴趣的:(mysql)