Nhibernate 如何将单个datetime列映射到模型中两个独立的datetime属性

Nhibernate 如何将单个datetime列映射到模型中两个独立的datetime属性,nhibernate,fluent-nhibernate,nhibernate-mapping,fluent-nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,Fluent Nhibernate Mapping,如果我有一个具有DateTime属性的对象,是否可以映射日期和时间以分离同一对象中的属性?即,具有StartDateTime、StartDate和StartTime的对象,其中StartDateTime作为列存在于数据库中,StartDate和StartTime仅引用StartDateTime列的不同部分 提前感谢您提供的任何帮助。我想说,这里的诀窍是: 将一个属性映射到该列。它可以为模型的其他部分隐藏,甚至可以进行保护(例如,请参见) 创建两个虚拟(我指的是未映射的属性)公共属性,访问并设置该

如果我有一个具有DateTime属性的对象,是否可以映射日期和时间以分离同一对象中的属性?即,具有StartDateTime、StartDate和StartTime的对象,其中StartDateTime作为列存在于数据库中,StartDate和StartTime仅引用StartDateTime列的不同部分


提前感谢您提供的任何帮助。

我想说,这里的诀窍是:

  • 将一个属性映射到该列。它可以为模型的其他部分隐藏,甚至可以进行保护(例如,请参见)
  • 创建两个虚拟(我指的是未映射的属性)公共属性,访问并设置该映射值
  • 例如,我用于映射
    版本的非常类似的场景。因此,虽然这将是映射:

    <version name="Timestamp" generated="always" unsaved-value="null" type="BinaryBlob">
      <column name="RowVersion" not-null="false" sql-type="timestamp"/>
    </version>
    
    有了它,我们可以将
    版本作为
    字符串
    发送给客户端。。。把它拿回来

    注意:我会将DB列映射到公共属性。这使得在
    QueryOver
    查询中使用该属性更容易。。。至少getter可以公开

    protected virtual byte[] Timestamp { get; set; }
    
    public virtual string Version
    {
        get { return Timestamp.IsEmpty() ? null : Convert.ToBase64String(Timestamp); }
        set { Timestamp = value.IsEmpty() ? null : Convert.FromBase64String(value); }
    }