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

    三维DP 第K字典序从左向右找 根据dp数组的值算出每一位该打印什么 代码: #include <cstdio> #include <cstring> using namesp ...

  2. Java cookie的使用

    1.cookie是什么? cookie是web应用当中非常常用的一种技术,用于储存某些特定的用户信息. 2.cookie的作用? 在用户登陆时将用户的信息存放在cookie中,用户在一定的时间中再次登 ...

  3. MSbuild 教程

    在.Net framework中,一个不太被大家熟知的工具就是MSBuild.这个命令行工具通过执行XML脚本可以自动生成软件工程文件. 但问题来了,“我为什么想要我的生成过程自动化?”. 其实,大部 ...

  4. 悟透Javascript之 原型prototype

    构造函数的Prototype上定义的方法确实可以通过对象直接调用,而且代码是共享的.我表示我不懂.太难理解了,艹.在Javascript中,prototype不但能让对象共享自己的财富,而且proto ...

  5. 综合(奇技淫巧):HDU 5118 GRE Words Once More!

    GRE Words Once More! Time Limit: 5000/5000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/O ...

  6. Asp.net 字体样式

    在页面中使用到字体样式  “微软雅黑“,在静态页面中显示正常,但在asp.net页面中字体无效,此时只需把字体修改为“Microsoft YaHei";

  7. [基础] Loss function(一)

    Loss function = Loss term(误差项) + Regularization term(正则项),我们先来研究误差项:首先,所谓误差项,当然是误差的越少越好,由于不存在负误差,所以为 ...

  8. Apache Mesos_百度百科

    Apache Mesos_百度百科 Apache Mesos

  9. 每天一道算法_6_I Think I Need a Houseboat

    今天的题目是I Think I Need a Houseboat 如下: Description Fred Mapper is considering purchasing some land in ...

  10. iPhone之Quartz 2D系列--编程指南(1)概览

    以下几遍关于Quartz 2D博文都是转载自:http://www.cocoachina.com/bbs/u.php?action=topic&uid=38018 iPhone之Quartz ...