2

插入实体时遇到问题。我不确定那里有什么问题。当我插入时,我得到一个 StorageClientException 说明“值超出范围”。

我的表服务实体看起来像

public class Itinerary : TableServiceEntity
{
     public string Name { get; set; }
     public DateTime DOB { get; set; }
     public int Sex { get; set; }
     public string ToPNR { get; set; }
     public string ReturnPNR { get; set; }
     public string ContactNumber { get; set; } 
     public DateTime TravelDate { get; set; }
     public DateTime ReturnDate { get; set; }
}

当提供完整的行程详细信息时,实体会被插入,但对于只有一侧详细信息的行程,插入方法会失败并出现给定的异常。

任何帮助,将不胜感激。

4

1 回答 1

6

我猜问题在于您的 DateTime 字段。如果您在将数据存储到表存储之前没有初始化它们,那么将分配给这些字段的值将是 .NET DateTime.Min 值的值。不幸的是,这个值超出了 Azure 表存储的范围。因此,始终建议为 Azure 表存储中的 DateTime 字段提供一些值。如果您想为其分配默认值,请使用 CloudTableClient.MinSupportedDateTime 属性。这将使用 Azure 存储支持的最小值初始化字段 - http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storageclient.cloudtableclient.minsupporteddatetime.aspx

希望这可以帮助

于 2013-02-06T21:27:14.870 回答