2010-06-10 46 views
0

出於某種原因,我的類上的TimeSpan屬性未被Subsonic持久保存到數據庫中,因此僅僅被忽略!所有其他屬性正在保存好。我正在使用SimpleRepository和RunMigrations,Subsonic v3.0.0.3。亞音速忽略TimeSpan屬性

public TimeSpan Time { get; set; } 

是否支持TimeSpans?

回答

3

TimeSpan不是有效的2005/2008 SQL數據類型。

將其存儲爲基於數字的SQL數據類型。將您的時間跨度要根據您所需要的精度的適當時間:

// Define an interval of 1 day, 15+ hours. 
TimeSpan interval = new TimeSpan(1, 15, 42, 45, 750); 
Console.WriteLine("Value of TimeSpan: {0}", interval); 
Console.WriteLine("{0:N5} minutes, as follows:", interval.TotalMinutes); 

當心有interval.Minutes和interval.TotalMinutes顯着的不同!

http://msdn.microsoft.com/en-us/library/system.timespan.totalminutes.aspx

這樣:

// my duration 
int duration = Time.TotalMinutes; 
// now insert this into the database 
+0

謝謝,但我現在用的SimpleRepository將意味着不得不改變我的對象的數據類型純粹是爲了在數據庫中插入數據,然後澆注的目的它每當我想使用它 - 除非我誤解? – ProNotion 2010-06-14 10:43:50

+0

Hi ProNotion。我的錯。我誤解了你的問題。 另一個用戶有一個類似的(ActiveRecord而不是SimpleRepository)TimeSpan轉換問題和John Sheehan的答案可能與您的問題有關:http://stackoverflow.com/questions/1448626/error-with-subsonic-attempting-to- convert-timespan-to-string 也許你應該在SubSonic Google Group上提出這個問題:http://groups.google.com/group/subsonicproject – Junto 2010-06-15 06:59:16

+0

反思你的推薦對我來說工作正常,通過存儲整數表示的TimeSpan中的毫秒數。謝謝 – ProNotion 2010-06-16 10:15:07