Для # 1 взгляните на клиентскую библиотеку WCF Data Services (что используется в .NET для запроса хранения таблиц).Вы можете избежать LINQ, если хотите создавать URL-адреса вручную, но LINQ, безусловно, является доминирующим способом запроса хранилища таблиц из кода .NET.
Для # 2 хранилище таблиц поддерживает очень мало операций (в основном простофильтры).Если вам нужно выполнить сортировку, группировку и т. Д., Вам нужно сначала вывести данные локально, а затем выполнить запрос оттуда.То, где все происходит, зависит от кода, который вы пишете.Например, произойдет сбой следующего:
mytable.Select(e => e.PartitionKey == "foo").OrderBy(e => e.SomeTime).Take(10)
, поскольку запрос будет отправлен в хранилище таблиц Windows Azure, и произойдет сбой, поскольку таблицы не поддерживают сортировку.Тем не менее, будет работать следующее (но очень неэффективно):
mytable.Select(e => e.PartitionKey == "foo").ToList().OrderBy(e => e.SomeTime).Take(10)
Это приведет к тому, что весь набор результатов (все с ключом раздела "foo") будет удален локально, потому что .ToList вызывает выполнение запроса.Затем, как только все это будет в памяти, оно будет отсортировано и возвращены первые десять элементов.