0

我正在创建一个自定义 EntityResolve,这样当我检索我的天蓝色表记录时,我将在业务对象(TableEntity 对象)上设置一堆属性,这些属性仅用于我的应用程序,而不是持久化回 Azure桌子。Azure 表上的属性用 [IgnoreProperty] 修饰

public delegate T EntityResolver<T>(string partitionKey, string rowKey, DateTimeOffset timestamp, IDictionary<string, EntityProperty> properties, string etag);

因此,我正在创建 EntityResolver,并将委托作为参数传递给 ExecuteQuerySegmentedAsync 方法,该方法将自定义绑定到表实体。

但是,我不想编写代码来自定义将每个属性解析为 TableEntity。我想使用所有默认的解析功能,然后添加一些额外的代码和业务逻辑来设置用于业务逻辑的其他属性。

在解析器中,无论如何我可以利用默认或一种基本解析功能,这样我就不必仅仅因为我想添加更多的部分而重写所有逻辑来做同样的事情一些新属性的代码和逻辑?

4

1 回答 1

2

EntityResolver 用于自定义客户端投影,这里的代码都应该自定义。我还没有找到为此方法提供的任何方法来自动解析属性。

当我们使用没有解析器的查询方法时,可以实现解析功能。例如:table.ExecuteQuerySegmented(query, continuationToken);

获得查询结果后,您可以为每个实体添加属性。像这样:

var entities = new List<CustomEntity>();
foreach (CustomEntity c in table.ExecuteQuerySegmented(query, continuationToken))
{
    c.Data = 100;
    ......
    entities.Add(c);
}
于 2018-03-19T09:23:23.790 回答