2012-09-27 114 views
0

我已經開始使用實體框架代碼優先,因爲它看起來像一個很好的方式來讓數據庫快速啓動並運行。我來自PostgreSQL背景,它支持表格中的數組類型,例如time[]。我的問題是雙重的; SQL Server支持數組類型,如果是這樣,我如何在EF中使用它們?如果他們不被支持,那麼表示這些數據的替代方法是什麼?實體框架存儲數據陣列

table Venue 
    openhours time[] 

編輯:陣列上方用來存儲不同的時間用於將─場地中的每一天可能對不同週末不同的開口小時,平日,例如。

回答

1

不,這是不支持,你需要存儲的openhours在一個單獨的表(VenueOpenhours)與外鍵Venue表。

+0

我懷疑這將是解決方案,它只是看起來很難加入7行,以獲得一個場地的開放時間。 – guhou

1

SQL Server不支持數組類型。從你的榜樣模式推斷,我認爲等效EF POCO是以下幾點:

public class Venue 
{ 
    public int VenueId { get; set; } 
    public DateTime OpenHour { get; set; } 
    public DateTime CloseHour { get; set; } 
} 

尋找Venue是否是開放在給定時間將只需要一個範圍查詢,Venue.Where(a => a.OpenHour <= time && a.CloseHour >= time)。當然,這是一個非常簡單的例子。最有可能的是你想把場地的時間存放在另一張桌子上。但我希望這可能會讓你朝着正確的方向前進。