首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在fluent-nhibernate映射中将字符串转换为double

在Fluent NHibernate映射中,将字符串转换为double可以通过自定义转换器实现。以下是一个示例:

首先,创建一个自定义转换器:

代码语言:csharp
复制
public class StringToDoubleConverter : IUserType
{
    public new bool Equals(object x, object y)
    {
        return object.Equals(x, y);
    }

    public int GetHashCode(object x)
    {
        return x.GetHashCode();
    }

    public object NullSafeGet(IDataReader rs, string[] names, object owner)
    {
        object obj = NHibernateUtil.String.NullSafeGet(rs, names[0]);
        if (obj == null)
        {
            return null;
        }
        return Convert.ToDouble(obj.ToString(), CultureInfo.InvariantCulture);
    }

    public void NullSafeSet(IDbCommand cmd, object value, int index)
    {
        if (value == null)
        {
            ((IDataParameter)cmd.Parameters[index]).Value = DBNull.Value;
        }
        else
        {
            ((IDataParameter)cmd.Parameters[index]).Value = value.ToString();
        }
    }

    public object DeepCopy(object value)
    {
        return value;
    }

    public object Replace(object original, object target, object owner)
    {
        return original;
    }

    public object Assemble(object cached, object owner)
    {
        return cached;
    }

    public object Disassemble(object value)
    {
        return value;
    }

    public SqlType[] SqlTypes
    {
        get
        {
            return new[] { new SqlType(DbType.String) };
        }
    }

    public Type ReturnedType
    {
        get
        {
            return typeof(double);
        }
    }

    public bool IsMutable
    {
        get
        {
            return false;
        }
    }
}

然后,在Fluent NHibernate映射中使用自定义转换器:

代码语言:csharp
复制
public class MyEntityMap : ClassMap<MyEntity>
{
    public MyEntityMap()
    {
        Table("MyEntity");
        Id(x => x.Id).GeneratedBy.Identity();
        Map(x => x.MyDoubleProperty).CustomType<StringToDoubleConverter>().Not.Nullable();
    }
}

这样,在映射MyEntity实体时,MyDoubleProperty属性将使用自定义的StringToDoubleConverter转换器,将字符串转换为double类型。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • python数字字符串固定位数_python-将String转换为64位整数映射字符以自定…「建议收藏」

    您将4个不同“数字”的字符串解释为数字,因此以4为基数.如果您有一串实际数字,范围为0-3,则可以让int()真正快速地生成一个整数. def seq_to_int(seq, _m=str.maketrans...0000000011101110001000001001000101001100000000101001101111101110’ 这里不需要填充;只要您的输入序列为32个字母或更少,则结果整数将适合无符号8字节整数表示形式.在上面的输出示例中,我使用format()字符串分别将该整数值格式化为十六进制和二进制字符串...为了衡量这是否更快,让我们随机抽取一百万个测试字符串(每个字符串长28个字符): >>> from random import choice >>> testvalues = [”.join([choice...(‘ATCG’) for _ in range(28)]) for _ in range(10 ** 6)] 使用2.9 GHz Intel Core i7的Macbook Pro和Python 3.6.5...上,上述功能可以3/4秒内产生100万次转换: >>> from timeit import timeit >>> timeit(‘seq_to_int(next(tviter))’, ‘from _

    9.7K40

    Kotlin学习日志(二)数据类型

    doubleDouble 布尔类型 Boolean boolean 和 Boolean 字符型 Char char 字符串 String String 这样就很立体了吧,请注意小写和大写的区别...toLong 转换为长整型 toFloat 转换为浮点数 toDouble 转换为双精度数 toChar 转换为字符 toString 转换为字符串 接下来我们用代码来演示一下: 修改一下布局文件如下...三、字符串 3.1字符串与基本类型的转换 这里我们对比一下Java的转换方式,如下表: 字符串转换目标 Kotlin的转换方式 Java的转换方式 字符串整型 字符串变量的toInt方法 Integer.parseInt...(字符串变量) 字符串长整型 字符串变量的toLong方法 Long.parseInt(字符串变量) 字符串浮点数 字符串变量的toFloat方法 Float.parseInt(字符串变量) 字符串双精度数...字符串变量的toDouble方法 Double.parseInt(字符串变量) 字符串布尔类型 字符串变量的toBoolean方法 Boolean.parseInt(字符串变量) 字符串字符数组

    3.4K20

    C++ 11字符数组字符串数字转换字符串拼接

    文章目录 一、numstring 1.1 int型数字字符串 1.2 float/double型数字字符串(不补0) 二、stringnum 2.1 使用stringstream类处理 2.2...使用\处理 三、char[]num 四、char[]与string的相互转换 五、字符串拼接 5.1 string + string 5.1 string + char* 参考文献 一、numstring...); cout << typeid(to_string(num) == typeid(string) << endl; // true 1.2 float/double型数字字符串(不补0) 头文件...(s,p) 把字符串s从p开始转换成float double stod(s) stod(s,p) 把字符串s从p开始转换成double long stol(s) stol(s,p,b) 把字符串s从...(s) 将字符串s[n]转换为整型值 double atof(s) 将字符串s[n]转换为double long atol(s) 将字符串s[n]转换为long 四、char[]与string的相互转换

    3.1K20

    隐秘的 MySQL 类型转换

    MySQL中,当操作符与不同类型的操作数一起使用时,会发生类型转换以使操作数兼容,则会发生隐式类型转换。 即 MySQL会根据需要自动将数字转换为字符串,或者将字符串换为数字。...从结果我们可以判定,SQL1中将字符串的“1”转换为数字1,而在SQL2 中,将数字2换为字符串“2”。 3.2 如何避免隐式类型转换?...+---------+------+----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE...'aa' 和数字1的类型不同,通过上述转换规则并且经查看warnings可以确认:隐式类型转化将字符串转为了 double 类型。...: 如果字符串的第一个字符就是非数字的字符,那么转换为数字就是0; 如果字符串以数字开头,那转换的数字就是开头的那些数字对应的值,直到遇到非数字字符才结束。

    3.2K40

    C#笔记2 —常量

    常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。 常量可以被当作常规的变量,只是它们的值定义后不能被修改。...整数常量、浮点常量、字符常量和c语言基本类似,这里就不详细展开 字符串常量稍有不同: 字符串常量是括双引号 "" 里,或者是括 @"" 里。...d2换出错:输入字符串的格式不正确。...Convert.ToInt32(double value) 如果 value 为两个整数中间的数字,则返回二者中的偶数;即 3.5换为4,4.5 转换为 4,而 5.5 转换为 6。...不过4.6可以转换为5,4.4转换为4 b. int.Parse("4.5") 直接报错:"输入字符串的格式不正确". c. int(4.6) = 4 Int转化其他数值类型为Int时没有四舍五入,强制转换

    1.3K20

    Java数据类型(八种基本数据类型 + 四种引用类型)、数据类型转换

    自动装箱是指将基本类型的值自动转换为对应的包装类型对象,如int Integer,Integer integer = 100,底层调用了Interger.valueOf(100)方法;而自动拆箱则是将包装类型对象自动转换为基本类型的值...转换从低级到高级:byte、short、char(三者同级)——> int ——> long ——> float ——> double自动类型转换:代码无需任何处理,代码编译时 编译器会自动进行处理。...把容量大的类型转换为容量小的类型时必须使用强制类型转换。...的ValueOf方法 2)直接使用 String类+ (即字符串拼接),任意字符串和其他类型"+" 都会把其他类型转为字符串 String str1 = String.valueOf(aInt...int:调用包装类的Integer.parseInt方法,当字符串中包含非数字时会出错 String str3 = "18"; int k = Integer.parseInt(str3)

    9.3K21

    备战第十六届蓝桥杯——函数——实践练习答案

    1、使用java编写一个函数,接受一个字符串参数,将字符串中的所有小写字母转换为大写字母并返回。...:" + originalString); System.out.println("转换为大写后的字符串:" + upperCaseString); } public static...原始矩阵的行变成了置矩阵的列,原始矩阵的列变成了置矩阵的行。这种转换提供了一种从不同维度观察数据的方式,有助于发现数据不同方向上的规律和关系。...在数学运算中的便利性:许多数学计算和理论推导中,置操作可以简化计算过程。...置操作还在求解线性方程组、计算矩阵的特征值和特征向量等方面发挥重要作用。 数据存储和访问优化:计算机存储和处理矩阵数据时,置可以优化数据的访问模式。

    6610

    【Kotlin】数字类型 ( 安全转换函数 | 浮点型整型 )

    文章目录 一、安全转换函数 二、浮点型整型 一、安全转换函数 ---- Kotlin 中 , 将 字符串 String 类型 转为 数字类型 , 如果 字符串 代表的数字类型 与 要换的 数字类型...不匹配 , 就会出异常 ; 如 : 执行如下代码 , 就会报异常 ; 字符串内容是 0.5 , 显然是一个 Double 类型的数字 , 强行将其转为 Int 类型 , 就会出现 NumberFormatException...= toIntOrNull(radix = 10) 代码示例 : 字符串内容 0.5 是 Double 类型 的 , 转为 Int 显然会失败 , 但是使用 该 安全转换函数 , 不会报异常 , 而是返回.../** * 将[Double]值转换为[Int]。...*/ public override fun toInt(): Int roundToInt 四舍五入函数 , 函数原型如下 : /** * 将[Double]值舍入为最接近的整数,并将结果转换为[Int

    3.1K30

    从弧到多线段:深入解析 Java 中的弧度多线段算法!

    什么是弧线与多线段了解“弧度多线段”之前,我们首先需要理解“弧线”和“多线段”的定义: 弧线:弧是圆或椭圆的一部分,通常由中心点、半径和起止角度定义。...通过将弧转换为多线段,我们可以:提高绘制性能:大多数图形库和硬件加速仅支持直线绘制,通过弧度多线段可以充分利用图形加速的优势。...案例演示:弧多线段的完整实现为了让大家更直观地理解,下面给出一个完整的示例,通过将任意弧线转换为多线段并可视化输出。import java.awt.*;import javax.swing....总结:这段代码展示了如何在 Java Swing 中将弧线转换为一系列直线段进行绘制。主要步骤包括计算线段的角度间隔,迭代计算每个线段的端点坐标,并使用 Graphics2D 绘制这些线段。...将弧线转换为多线段,能够有效地进行碰撞检测、路径规划和角色运动模拟。尤其是游戏引擎中,简单的多边形可以显著减少渲染的计算开销。3.

    16122

    Groovy as关键字性能测试

    Stringdouble 这个是非常常用的,还有一个类似的Stringint,由于极其相似就不再测试了。其实结论大差不差。...较长小数点情况下,又稍逊一筹,到了long类型数据直接崩了。各位可以根据使用场景自行选择。 数字String 这个用得少,通常直接使用Java自带的加一个空字符串实现。...doubleint 下面分享一下数字类型之间相互转换,以doubleint为例。...Groovy中,as是一个关键字,它用于类型转换和类型推断。 Groovy中,as关键字用于将一个对象转换为指定类型的对象。...例如,可以使用as关键字将一个字符串换为整数,或将一个Map转换为JSON字符串。as关键字还可以用于类型推断,即根据上下文推断出对象的类型。

    18120

    Java学习笔记, 不断更新

    使用一个或多个空格分割字符串 str.split("\\s+"); String 转换成 int 1). int i = Integer.parseInt([String]);//遇到不能被转换为整型的字符时...4 public String getPath() 将此抽象路径名转换为一个路径名字符串。 5 public boolean isAbsolute() 测试此抽象路径名是否为绝对路径名。...进制转换 // 10进制2进制,返回一个二进制字符串 Integer.toBinaryString(n); // 10进制8进制,返回一个八进制字符串 Integer.toOctalString...(n); // 10进制16进制,返回一个16进制字符串 Integer.toHexString(n); // 10进制 r 进制,返回一个r进制字符串 Integer.toString..., 8).toString(); // 16进制转成10进制 Integer.valueOf("FFFF", 16).toString(); // r进制的字符串s10进制 Integer.parseInt

    1.1K40

    接口回的 Long 值,竟然被偷了

    昨天下午,有伙伴儿群里面问了下面这么个问题: 数据库用bigint存储了记录的ID,Java代码用Long类型映射记录对应ID的值;前端调用SpringBoot的接口获取数据,后端debug时Long...JS 遵循 IEEE 754 规范,采用双精度存储(double precision),占用 64 bit。...name": "zhangsan", "age": "10", "gender": 1 } 配置了@JsonSerialize的id和age被转换成了文本 优点 灵活,针对对象的属性配置,想那个就那个...,不会干扰到其他属性或者对象 缺点 每个需要转换的属性都需要配置,有点苦力活的意思 方式二:全局配置,将数值类型转换为文本 如果需要将所有的数值类型全部转换成文本,可以application.yml中添加如下配置...: spring: jackson: generator: write_numbers_as_strings: true #序列化的时候,将数值类型全部转换成字符串返回 测试示例

    2K10

    java byte16进制字符串_Java字节数组转换成十六进制字符串的几种方法

    参考链接: Java程序将字节数组转换为十六进制 前言  最近在项目中需要将字节数组转换成十六进制字符串,而Java内置的库中并没有相关工具可用,因此查了一下byte数组hex字符串的相关方法,列出如下...02x", b);  }  String result = formatter.toString();  formatter.close();  return result;  }  方法3:使用字节字符映射...> 4];  out[i * 2 + 1] = hexArray[v & 0x0F];  }  return new String(out);  }  此处需要注意的是,Java中byte是有符号的,将...Hex.encodeHexString(data);  System.out.println(hexString);  查看Hex.encodeHexString中的源码,我们可以看到该方法的实现与方法3是类似的,即通过字节字符的映射来实现...总结  以上介绍了Java中将字节数组转化成十六进制字符串的4种方法,需要的话可以直接拿来使用。

    4.7K20
    领券