Я пытаюсь запросить хранилище таблиц Azure.Для этого я использую следующие два метода:
TableServiceContext:
public IQueryable<T> QueryEntities<T>(string tableName) where T : TableServiceEntity
{
this.ResolveType = (unused) => typeof(T);
return this.CreateQuery<T>(tableName);
}
Код, который использует метод выше:
CloudStorageAccount account = AzureConnector.GetCloudStorageAccount(AppSettingsVariables.TableStorageConnection);
AzureTableStorageContext context = new AzureTableStorageContext(account.TableEndpoint.ToString(), account.Credentials);
// Checks if the setting already exists in the Azure table storage. Returns null if not exists.
var existsQuery = from e in context.QueryEntities<ServiceSettingEntity>(TableName)
where e.ServiceName.Equals(this.ServiceName) && e.SettingName.Equals(settingName)
select e;
ServiceSettingEntity existingSettginEntity = existsQuery.FirstOrDefault();
Запрос LINQ выше генерирует следующий запросurl:
http://127.0.0.1:10002/devstoreaccount1/PublicSpaceNotificationSettingsTable()?$filter=(ServiceName eq 'PublicSpaceNotification') and (SettingName eq 'expectiss')
Код в классе генерирует следующее исключение MissingMethodException:
![enter image description here](https://i.stack.imgur.com/sGDiD.png)
- Я посмотрел на поддерживаемые LINQ Queries Queries для API таблицы;
- Посмотрел несколько рабочих решений для работы со стеком;
- Попытка IgnoreResourceNotFoundException для TableServiceContext (пользовательские комментарии QueryOperators );
- Попытка преобразовать запрос linq с помощью ToList () перед первым вызовом или по умолчанию (пользовательские комментарии QueryOperators ).
, но я не могу заставить это работать.