Я пытаюсь запросить кеш таблицы, используя LINQ:
public static IEnumerable<DocumentMetaDataEntity> Get(string connectionString, string cacheName, DeconstructedFileName deconstructedFileName, FileMetaDataFilters filters)
{
var acc = CloudStorageAccount.Parse(connectionString);
var tableClient = acc.CreateCloudTableClient();
var table = tableClient.GetTableReference(cacheName);
var translations = from entity in table.CreateQuery<DocumentMetaDataEntity>()
where (entity.sourceParty == sourceParty.ToLowerTrim()
&& entity.destinationParty == destinationParty.ToLowerTrim())
|| (entity.sourceParty == "YES"
&& entity.destinationParty == destinationParty.ToLowerTrim())
select entity;
return translations.Where(x => x.expireAt > DateTime.Now)
.Where(x => x.effectiveAt < DateTime.Now);
}
Однако, получая это исключение:
«CloudTable» не содержит определения для «CreateQuery»и не удалось найти доступный метод расширения CreateQuery, принимающий первый аргумент типа CloudTable (отсутствует директива using или ссылка на сборку?)
Что я делаю неправильно?Разве нельзя запросить кеш таблиц из ядра .net?
Для некоторой дополнительной информации вот create методов, доступных в этом классе:
Вот все зависимости:
Я удалил LINQ из уравнения, но все еще получаю следующую проблему:
И полный источник приведен ниже:
public static IEnumerable<DocumentMetaDataEntity> Get(string connectionString, string cacheName, DeconstructedFileName deconstructedFileName, FileMetaDataFilters filters)
{
var acc = CloudStorageAccount.Parse(connectionString);
var tableClient = acc.CreateCloudTableClient();
var table = tableClient.GetTableReference(cacheName);
var query = new TableQuery<DocumentMetaDataEntity>().Where
(TableQuery.CombineFilters
(TableQuery.GenerateFilterCondition("FacilityCode", QueryComparisons.Equal, deconstructedFileName.FacilityCode)
, TableOperators.And
, TableQuery.GenerateFilterCondition("LastName", QueryComparisons.LessThan, deconstructedFileName.LastName)
)
);
var entities = table.ExecuteQuery(query).ToList();
}