问题描述:
 当数据库列类型有Money类型的时候,CodeSmith生成数据访问层会出错。有不能识别的类型。
解决方法:
 通过查找资料得知,数据库中的Money类型在DbType中是Currency(货币类型),在C#中对应SqlDbType.Decimal。
 ①在
  public string GetCSharpVariableType2(ColumnSchema column)
  {
  if (column.Name.EndsWith("TypeCode")) return column.Name;
 
   switch (column.DataType)
   {
    case DbType.AnsiString: return "SqlDbType.VarChar";
    case DbType.AnsiStringFixedLength: return "SqlDbType.VarChar";
    case DbType.Binary: return "SqlDbType.Binary";
    case DbType.Boolean: return "SqlDbType.Bit";
    case DbType.Date: return "SqlDbType.DateTime";
    case DbType.DateTime: return "SqlDbType.DateTime";
    case DbType.Decimal: return "SqlDbType.Decimal";
    case DbType.Double: return "SqlDbType.Decimal";
    case DbType.Int16: return "SqlDbType.Int";
    case DbType.Int32: return "SqlDbType.Int";
    case DbType.Int64: return "SqlDbType.Float";
    case DbType.String: return "SqlDbType.VarChar";
    case DbType.StringFixedLength: return "SqlDbType.NChar";
    case DbType.Currency: return "SqlDbType.Decimal";
    default:
    {
     return "__UNKNOWN__" + column.NativeType;
    }
   }
  }
  中查找case DbType.Currency: return "SqlDbType.Decimal";
  若没有,就加上;有则不管。
 ②在public string GetCode(ColumnSchema column)方法中,查找
  case DbType.Decimal:
  case DbType.Currency:
  case DbType.Double:
  {
   sb.Append("            if (dr.Table.Columns.Contains(\""+column.Name+"\") && !dr.IsNull(\""+column.Name+"\"))\r\n");
   sb.Append("            {\r\n");
   sb.Append("                model."+GetPropertyNameUpperFirstSub_(column)+" = decimal.Parse(dr[\""+column.Name+"\"].ToString());\r\n");
   sb.Append("            }\r\n");
   break;
  }
  其中,若没有case DbType.Currency: 那就加上;有则不管。
  谭家泉
  2014年3月24日 15:19:04

最新文章

  1. 解决在使用client object model的时候报“object does not belong to a list”错误
  2. ArrayBlockingQueue-我们到底能走多远系列(42)
  3. freebsd上安装nginx+php记录
  4. python多线程threading
  5. Ext.useShims=true
  6. 跟我学机器视觉-HALCON学习例程中文详解-开关引脚测量
  7. [Angular 2] ROUTING IN ANGULAR 2 REVISITED
  8. CodeForces 710E Generate a String
  9. linux系统无法正常启动,故障排查恢复
  10. java redispool测试类保存
  11. spring cloud zuul 传递 header
  12. 将ubuntu14.04 从mysql从5.5删除之后安装5.7遇到的一些问题(本篇不讨论热升级)
  13. HTTP方法之GET与POST对比
  14. sourcetree 跳过注册
  15. python网络爬虫 - 设定重试次数内反复抓取
  16. Ubuntu 制作离线安装包
  17. ATmega8仿真——LED 数码管的学习
  18. NFS根文件系统
  19. 织梦DedeCMS使用SQL批量替换文章标题内容
  20. easy UI动态赋值

热门文章

  1. 安卓天天练练(十)ListView
  2. linux解压命令
  3. Android开源项目发现--- 工具类数据库ORM篇(持续更新)
  4. JAVA程序,SESSION没有关闭导致数据库异常
  5. VM Depot 镜像新增系列II – 学习管理系统,内容管理系统以及平台管理工具
  6. Hibernate(八)一对多单向关联映射
  7. hdu4281 区间dp
  8. linux trap
  9. Uncode-Schedule首页、文档和下载 - 分布式任务调度组件 - 开源中国社区
  10. Java内部类的一些总结