2012-09-27 106 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)。当然,这是一个非常简单的例子。最有可能的是你想把场地的时间存放在另一张桌子上。但我希望这可能会让你朝着正确的方向前进。