0

我已经开始尝试使用 Entity Framework Code-First,因为它看起来是一种快速启动和运行数据库的好方法。我来自 PostgreSQL 背景,它支持表中的数组类型,例如time[]. 我的问题有两个;SQL Server 是否支持数组类型,如果支持,我如何在 EF 中使用它们?如果它们不受支持,那么表示此数据的替代方法是什么?

table Venue
    openhours time[]

编辑:上面的数组旨在存储一周中每一天的不同时间——例如,一个场所可能在不同的周末到工作日有不同的开放时间。

4

2 回答 2

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). 当然,这是一个非常简单的例子。您很可能希望将场地时间存储在另一个表中。但我希望这可以让你朝着正确的方向前进。

于 2012-09-27T04:26:56.943 回答
1

不,不支持,您需要将您的表存储openhours在一个单独的表 ( VenueOpenhours) 中,并带有表的外键Venue

于 2012-09-27T04:24:39.900 回答