c# - Fluent NHibernate映射: QuantLib.日期和Mysql的日期

标签 c# mysql nhibernate fluent-nhibernate nhibernate-mapping

我正在使用 QuantLib 的 Date类在 C# 项目中,当尝试将我的 Price 类映射到 mySql 数据库中的 price 表时,这会导致一些问题。

price 表包含三列:[id][date][value] 并且代码如下所示:

//ENTITY
    public class Price{
        public virtual long id { get; protected set; }
        public virtual QuantLib.Date date { get; set; }
        public virtual double value{ get; set; }
    }

//MAPPING
    public PriceMap() {
        Table("price");
        Id(x => x.id, "id");
        Map(x => x.date, "date") // to be completed... ;
        Map(x => x.value, "value");
    }

有没有办法指定NHibernate如何将这个类映射到MySQL的Date类型,使用 Fluent NHibernate?在保存到数据库或从数据库中检索之前对其进行强制转换,而无需更改实体的结构。

最佳答案

你有两个选择

  1. 为 nhibernate 创建自定义类型,并在映射中将其指定为 .CustomType。因此,您必须实现一个小接口(interface),用于与 QuantLib.Date

  2. 进行转换
  3. 您只需将日期属性的类型更改为 System.DateTime 并添加另一个读取/写入日期属性但使用您的 QuantLib.Date 的属性, 伪代码:

    public QuantLib.Date QDate {
       get{
         // read from this.date and create a new QuantLib.Date
       }
       set{
         // write to this.date
       }
    }
    

关于c# - Fluent NHibernate映射: QuantLib.日期和Mysql的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20660997/

相关文章:

c# - 我可以使用 C# 序列化来读取自定义格式的二进制文件吗?

c# - 使用 MiniProfiler 时如何从分析中删除特定的 URL

CREATE TRIGGER 附近的 MySQL 触发器语法错误

mysql - 选择数据库表中的相互编号

sql - 从多个数据库获取数据

c# - 修改 Lambda 表达式

c# - 如何将 DataCacheFactory 与 Azure 缓存(共存)重用

c# - Entity Framework 抛出错误 "Unable to evaluate the expression. Operation not supported. Unknown error: 0x80070057."

mysql - 根据条件计算事件的总时间

c# - Nhibernate QueryOver 左外连接条件