Почему я получаю исключение MissingMethodException при запросе TableServiceContext? - PullRequest
1 голос
/ 18 августа 2011

Я пытаюсь запросить хранилище таблиц 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

  • Я посмотрел на поддерживаемые LINQ Queries Queries для API таблицы;
  • Посмотрел несколько рабочих решений для работы со стеком;
  • Попытка IgnoreResourceNotFoundException для TableServiceContext (пользовательские комментарии QueryOperators );
  • Попытка преобразовать запрос linq с помощью ToList () перед первым вызовом или по умолчанию (пользовательские комментарии QueryOperators ).

, но я не могу заставить это работать.

1 Ответ

1 голос
/ 19 августа 2011

Убедитесь, что у вас есть конструктор без параметров для класса "ServerSettingEntity".DTO, который наследует TableServiceEntity, нуждается в конструкторе без параметров.

...