我在SQL Server 2008數據庫中有一個包含時間列的表。在NHibernate,流利NHibernate和SQL Server 2008中使用時間列
我試圖映射到的對象的屬性是TimeSpan。
我該如何告訴FluentNHibernate使用TimeAsTimeSpan NHibernate類型,以便我沒有強制轉換問題?
我在SQL Server 2008數據庫中有一個包含時間列的表。在NHibernate,流利NHibernate和SQL Server 2008中使用時間列
我試圖映射到的對象的屬性是TimeSpan。
我該如何告訴FluentNHibernate使用TimeAsTimeSpan NHibernate類型,以便我沒有強制轉換問題?
如果你正在使用的約定,那麼這確實對我的工作:
public class PropertyConvention : IPropertyConvention
{
public void Apply(IPropertyInstance instance)
{
if (instance.Property.PropertyType == typeof(TimeSpan))
instance.CustomType("TimeAsTimeSpan");
}
}
你應該能夠使用CustomType來映射它。
我把什麼CustomType? TimeAsTimeSpan或DBType.Time? 隨着TimeAsTimeSpan我得到一個例外,因爲類型沒有一個沒有參數的構造函數 – 2010-02-19 16:07:02
鏈接文章的第一行是「CustomType(」TimeAsTimeSpan「)應該工作正常」。 – 2010-03-25 12:17:45
這是爲我工作:
Map(x => x.TimeFrom)
.CustomType("TimeAsTimeSpan");
這有效,但你如何處理數據庫中的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
@ mindplay.dk'TimeSpan'不能表示'null'。 'TimeSpan?'可以。 – 2013-10-08 03:40:31
也爲我工作。 – 2011-10-12 08:31:51