我正在创建一个自定义EntityResolve,这样当我检索我的 azure 表记录时,我将在业务对象(TableEntity对象)上设置一堆属性,这些属性仅在我的应用程序中使用,而不是持久化回来到 Azure 表。 Azure表上的属性用[IgnoreProperty]修饰
public delegate T EntityResolver<T>(string partitionKey, string rowKey, DateTimeOffset timestamp, IDictionary<string, EntityProperty> properties, string etag);
因此,我正在创建 EntityResolver,并且将委托(delegate)作为参数传递到 ExecuteQuerySegmentedAsync 方法中,该方法将执行到表实体的自定义绑定(bind)。
但是,我不想编写代码来自定义解析 TableEntity 的每个属性。我想使用所有默认解析功能,但随后添加一些额外的代码和业务逻辑来设置用于业务逻辑的其他属性。
在解析器中,我是否可以利用默认或某种基本解析功能,这样我就不必仅仅因为我想添加一些逻辑就重新编写所有逻辑来执行相同的操作一些新属性的更多代码和逻辑?
最佳答案
EntityResolver用于自定义客户端投影,这里的代码都需要自定义。我还没有找到任何为此方法提供的自动解析属性的方法。
当我们使用不带解析器的查询方法时,就可以实现解析功能。例如:table.ExecuteQuerySegmented(query, continuationToken);
获得查询结果后,您可以为每个实体添加属性。 像这样:
var entities = new List<CustomEntity>();
foreach (CustomEntity c in table.ExecuteQuerySegmented(query, continuationToken))
{
c.Data = 100;
......
entities.Add(c);
}
关于c# - Azure TableEntity EntityResolver 用于调用和重用基本解析功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49309615/