Azure表查询在更改大小写时返回空值

时间:2016-11-29 16:12:36

标签: c# azure azure-table-storage

我有一个名为" Motion" 的Azure表。该表包含以下字段:

  • PartitionKey
  • RowKey
  • spaceid
  • readingtime

外壳是在Visual Studio中的Cloud Explorer中显示的外壳。我使用类" MotionModel"

查询此表
    Course(Worker_id, Course_id)
          Primary key is (Worker_id, Course_id)

    Prerequisite(Course_id, Prerequisite_id)
          Primary key is (Course_id, Prerequisite_id)

我正确地得到了值。但是,如果我将其更改为

public class MotionData : TableEntity
    {
        public MotionData() { }

        public string spaceid {get; set;}

        public DateTime readingtime { get; set; }
    }

我在ReadingTime中获取值,但SpaceId为null。 是否有关于为TableEntity类命名属性的指南?

2 个答案:

答案 0 :(得分:2)

您所看到的是预期的行为。 Azure表实体属性区分大小写。从link

开始
  

属性名称是区分大小写的字符串,最多255个字符   尺寸。属性名称应遵循C#标识符的命名规则。

在您的表中有三个名为SpaceIdspaceidSPACEID的属性是完全有效的。

就命名实体属性的准则而言,AFAIK没有。这一切都取决于您想要如何创建模型。您可以根据需要设计模型并命名属性,存储客户端库将相应地命名属性。

答案 1 :(得分:0)

正如Gaurav所说,这是预期的行为。

  

我在ReadingTime中获取值但是SpaceId为null

ReadingTime值可以是“1/1/0001 12:00:00 AM”,它是显示Null DateTime的DateTime的MinValue。它可能不是您设置的值。 由于Spaceid是字符串类型,因此它没有显示空值。