【发布时间】:2016-09-29 20:41:44
【问题描述】:
我正在编写一个 web.api 控制器,它使用投影查询 Azure 表存储表,并且需要返回投影列的 json 字符串。
结果返回投影,但它还包括每个实体的基本属性 PK、RK、时间戳和 eTag。
我想在屏幕上返回一个仅包含投影列的 json 字符串,但由于包含了基本属性,我必须经过额外的步骤,在序列化为 Json 之前从每个实体中剥离基本属性。
有没有办法让查询只返回投影列?
这是我返回 TableQuery 的代码:
class Poco:TableEntity{
... Col1
... Col2
}
var rangeQuery = new TableQuery<Poco>().Where(filter).Select(new List<string>
{ "col1", "col2" });
var result = table.ExecuteQuery(rangeQuery).ToList();
下面是返回 DynamicTableEntity 的相同代码:
class Poco{
... Col1
... Col2
}
var rangeQuery = new TableQuery();
rangeQuery.Where(filter).Select(new List<string>
{ "col1", "col2" });
var result = table.ExecuteQuery(rangeQuery).ToList();
这些示例中的每一个都返回基本相同的内容,但在倒置结构中,TableQuery 返回 Poco 元素列表,但每个元素都包含一个“基本”属性,其中包含所有基本属性。 DynamicTableEntity 返回基本属性元素的列表,其中每个元素都包含一个“属性”属性,该属性包含投影列的数组。
【问题讨论】: