回答

5

如果你正在使用的約定,那麼這確實對我的工作:

public class PropertyConvention : IPropertyConvention 
{ 
    public void Apply(IPropertyInstance instance) 
    { 
     if (instance.Property.PropertyType == typeof(TimeSpan)) 
      instance.CustomType("TimeAsTimeSpan"); 
    } 
} 
+0

也爲我工作。 – 2011-10-12 08:31:51

1

你應該能夠使用CustomType來映射它。

+0

我把什麼CustomType? TimeAsTimeSpan或DBType.Time? 隨着TimeAsTimeSpan我得到一個例外,因爲類型沒有一個沒有參數的構造函數 – 2010-02-19 16:07:02

+0

鏈接文章的第一行是「CustomType(」TimeAsTimeSpan「)應該工作正常」。 – 2010-03-25 12:17:45

7

這是爲我工作:

Map(x => x.TimeFrom) 
    .CustomType("TimeAsTimeSpan"); 
+0

這有效,但你如何處理數據庫中的NULL值? TimeSpan.Zero等於新的TimeSpan(0,0,0),因此無法工作,並且通過NHibernate的TimeAsTimeSpanType持續爲「00:00:00」。戳穿源代碼,它似乎根本不處理NULL值?無論是將NULL還是「00:00:00」放入列中,都以NHibernate作爲TimeSpan.Zero的方式返回。是什麼賦予了? – 2011-05-27 17:57:34

+3

@ mindplay.dk'TimeSpan'不能表示'null'。 'TimeSpan?'可以。 – 2013-10-08 03:40:31