如何在linq到azure存储查询中选择字段子集



我有

var query =
        from Dev device
        in storage.QueryEntities<Dev>("dev")
        where device.PartitionKey == "1"
        select device;

我只需要表中的一些列。做

var query =
        from Dev device
        in storage.QueryEntities<Dev>("dev")
        where device.PartitionKey == "1"
        select new {device.ID, device.Model};

不起作用:发出字段名作为REST查询的一部分($select=ID,Model)和azure返回'InvalidInput'

应该可以从2011-08-18版本开始工作,参见针对表服务编写LINQ查询。

下面的示例从具有10个属性的实体投射3个属性。在这个例子中,SampleEntity的10个属性是从A到J的字母:

IEnumerable<SampleEntity> query = from entity in
                                  dataServiceContext.CreateQuery<SampleEntity>(tableName)
                                  where entity.PartitionKey == "MyPartitionKey"
                                  select new SampleEntity
                                  {
                                      PartitionKey = entity.PartitionKey,
                                      RowKey = entity.RowKey,
                                      A = entity.A,
                                      D = entity.D,
                                      I = entity.I
                                  };

参见http://msdn.microsoft.com/en-us/library/dd135725.aspx

选择-不支持-在任何读操作中检索实体的所有属性。不支持投影

所以你不能在表接口级别做这个投影——你必须选择所有的字段

相关内容

  • 没有找到相关文章

最新更新