一岸柳  
在编程的过程中有些知识和大家分享,便随笔记下来。
1.数据映射文件如果是嵌入式的,在使用VS2003工具时,那么在修改了文件之后,要重新生成项目,不要用增量编译,否则新修改的东西不会生效。

2.在映射文件的中需要映射数据类型,数据库中的类型和.NET类型的对应关系如下:

DbType .NET Type
Binary byte[]
Boolean bool
Byte byte
Currency decimal
Decimal decimal
VarNumeric decimal
Date DateTime
DateTime DateTime
Time DateTime
Double double
Guid Guid
Int16 short
Int32 int
Int64 long
Object object
SByte sbyte
Single float
String string
StringFixedLength string
AnsiString string
AnsiStringFixedLength string
UInt16 ushort
UInt32 uint
UInt64 ulong

如果使用String,可以限定长度,如:String(20);如果使用Decimal也可以限定长度,如: Decimal(8, 2)

3.版本0.4nhibernate存在bug,可能会出现在使用Decimal的时候出现异常,是因为NHibernate.Driver.DriverBase类的Bug导致的,需要把GenerateParameter函数改成如下所示:

  protected virtual IDbDataParameter GenerateParameter(IDbCommand command, string name, Parameter parameter, Dialect.Dialect dialect)
  {
    IDbDataParameter dbParam = command.CreateParameter();
    dbParam.DbType = parameter.SqlType.DbType;
    if (parameter.SqlType.LengthDefined)
        dbParam.Size = parameter.SqlType.Length;
    if (parameter.SqlType.PrecisionDefined)
    {
        dbParam.Precision = parameter.SqlType.Precision;
        dbParam.Scale = parameter.SqlType.Scale;
    }
    dbParam.ParameterName = this.FormatNameForParameter(name);
    return dbParam;
}

posted on 2004-11-24 09:51  一岸柳  阅读(406)  评论(0)    收藏  举报