我正在查询表中的实体,更改它们,然后执行替换操作。 替换操作失败,因为 etag 上的 etag 属性为 null。我检查过,当我从 CreateQuery() 调用获取实体时,etag 为空,但在我执行 Retrieve() 时填充。有没有办法手动获取etag?
IEnumerable<MyEntity> query = from e in serviceContext.CreateQuery<MyEntity>(tableName)
where e.Id == queryId
select e;
MyEntity entity = query.FirstOrDefault();
// Update the MyEntity object
var replaceOperation = TableOperation.Replace(entity);
MyCloudTableClient.GetTableReference(tableName).Execute(replaceOperation);
// Exception is thrown here that eTag value is null
最佳答案
您是否尝试过使用 TableQuery 而不是 DataServiceQuery?
所以..
cloudTableClient.GetTableReference(TableName).CreateQuery() 而不是 serviceContext.CreateQuery...
顺便说一句,我认为 TableQuery 是 2.1 中的新功能...
关于azure - 无法在 CreateQuery 上获取 Azure TableEntity etag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16073375/