问题描述:
 当数据库列类型有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

关键词:CodeSmith工具、Money类型、__UNKNOWN__的更多相关文章

  1. 百度关键词搜索工具 v1.1|url采集工具 v1.1

    功能介绍:关键词搜索工具 批量关键词自动搜索采集 自动去除垃圾二级泛解析域名 可设置是否保存域名或者url 持续更新中

  2. javascript 的工具方法 --- 类型判断

    Javascript中常见类型对象有: Boolean, Number, String, Function, Array, Date, RegExp, Object, Error, Symbol等等. ...

  3. 使用代码辅助生成工具CodeSmith -- 生成NHibernate的映射文件

    首先下载CodeSmith工具:在百度云中,在CodeSmith文件夹中. 安装,使用激活工具激活. 然后下载NHibernate模板,也是在百度云中,在CodeSmith文件夹中. 之后直接点击NH ...

  4. python打造批量关键词排名查询工具

    自己做站点的时候,都看看收录和关键词排名什么的,所以打造的这个批量关键词查询工具. #encoding:utf-8 import urllib,re,random,time,sys,StringIO, ...

  5. 关于SEO的一些见解---关键词的选取布局以及内外链的建设

    前言     SEO是英文 Search EngineOptimiation的缩写,中文翻译为"搜索引擎优化"简单地说, SEO就是从搜索引擎上获得流量的技术 . 搜索引掌优化的主 ...

  6. Java工具类——通过配置XML验证Map

    Java工具类--通过配置XML验证Map 背景 在JavaWeb项目中,接收前端过来的参数时通常是使用我们的实体类进行接收的.但是呢,我们不能去决定已经搭建好的框架是怎么样的,在我接触的框架中有一种 ...

  7. 环境与工具2:建立高效的mac环境

    你的工作与生活离不开电脑,电脑是一个工具,也是一个环境.环境是不是绿水青山,是不是得心应手,这是很重要的事情.小程平时使用macbook来学习跟娱乐,最近重装了系统,很多环境与工具都需要重新组建. 那 ...

  8. ETH&EOS开发资源及工具集合(完整汇总版)

    ETH&EOS开发资源及工具集合(完整汇总版) 3113 ETH开发资源篇 一.开发语言 ·         Solidity - 官方推荐以太坊智能合约开发语言,也是目前最为主流的智能合约语 ...

  9. SEO优化---学会建立高转化率的网站关键词库

    想要优化好一个网站,行业的分析,以及关键词的挖掘是必要的,有一定的关键词排名了,但是转化率和流量方面却很不理想这种情况大部分是只注重了有指数的关键词排名,而忽略了长尾关键词和一些没有指数但是可以带来巨 ...

随机推荐

  1. CPU 定位高

    流程:把线程dump出来,然后分析 1:Threaddump的方法: kill -3 pid     jstack -l pid     jvisualvm中来thread dump 2:找到导致cp ...

  2. Android网络框架Volley(实战篇)

      之前讲了ym—— Android网络框架Volley(体验篇),大家应该了解了volley的使用,接下来我们要看看如何把volley使用到实战项目里面,我们先考虑下一些问题: 从上一篇来看 mQu ...

  3. Android清除本地数据缓存代码

    /*  * 文 件 名:  DataCleanManager.java  * 描    述:  主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目 ...

  4. linux查看端口号是否被占用

    etstat -anp |grep 端口号 root用户执行 netstat -ntupl n表示不查询dns t表示tcp协议 u表示udp协议 p表示查询占用的程序 l表示查询正在监听的程序 查看 ...

  5. oracle数据库根据不同条件给同一字段修改相应的值:

    oracle数据库根据不同条件给同一字段修改相应的值: 例如:根据职务调整雇员的工资,如果职务为“SALESMAN”或者“ANALYST”工资上调100元,如果职务为“MANAGER”工资上调200元 ...

  6. Bzoj 2718: [Violet 4]毕业旅行 && Bzoj 1143: [CTSC2008]祭祀river 传递闭包,二分图匹配,匈牙利,bitset

    1143: [CTSC2008]祭祀river Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1878  Solved: 937[Submit][St ...

  7. Java获取当前路径

    1.利用System.getProperty()函数获取当前路径:System.out.println(System.getProperty("user.dir"));//user ...

  8. NGRC远程控制

    这是大三学完计算机网络的课程之后开始写的东西,后来慢慢完善到能用的程度. 界面大概是这样 还有这样 使用Java的好处是不用修改就可以在Mac和Linux上运行(测试过Ubuntu和OS X) 缺点是 ...

  9. cf493A

    Description Vasya has started watching football games. He has learned that for some fouls the player ...

  10. 趣解curl

    Curl是Linux下一个很强大的http命令行工具,其功能十分强大. 1) 二话不说,先从这里开始吧! $ curl http://www.linuxidc.com 回车之后,www.linuxid ...