Permalink
Fetching contributors…
Cannot retrieve contributors at this time
147 lines (147 sloc) 7.93 KB
<Type Name="IPartitionResolver" FullName="Microsoft.Azure.Documents.Client.IPartitionResolver">
<TypeSignature Language="C#" Value="public interface IPartitionResolver" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IPartitionResolver" />
<TypeSignature Language="DocId" Value="T:Microsoft.Azure.Documents.Client.IPartitionResolver" />
<AssemblyInfo>
<AssemblyName>Microsoft.Azure.Documents.Client</AssemblyName>
<AssemblyVersion>1.14.0.0</AssemblyVersion>
<AssemblyVersion>1.16.0.0</AssemblyVersion>
<AssemblyVersion>1.17.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>Microsoft.Azure.DocumentDB.Core</AssemblyName>
<AssemblyVersion>1.5.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces />
<Attributes>
<Attribute>
<AttributeName>System.Obsolete("Support for IPartitionResolver is now obsolete. It's recommended that you use partitioned collections for higher storage and throughput.")</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>
This represents a partition resolver for a database. Given a partition key, return the collection link(s) matching the partition key
in the Azure DocumentDB database service.
</summary>
<remarks>
<para>
Support for IPartitionResolver is now obsolete. It's recommended that you use
<a href="https://azure.microsoft.com/documentation/articles/documentdb-partition-data">Partitioned Collections</a> for higher storage and throughput.
</para>
<para>
DocumentClient allows you to create and register IPartitionResolvers implementations for each database. Once registered, you can perform
document operations directly against a database instead of a collection. IPartitionResolvers has just three methods
ExtractPartitionKey, ResolveForCreate and ResolveForRead.
</para>
<para>
LINQ queries and ReadFeed iterators use the ResolveForRead internally to iterate over all the collections that match the partition key for
the request. Similarly, create operations use the ResolveForCreate to route creates to the right partition. There are no changes required for Replace,
Delete and Read since they use the Document, which already contains the reference to the collection that holds the document.
</para>
</remarks>
</Docs>
<Members>
<Member MemberName="GetPartitionKey">
<MemberSignature Language="C#" Value="public object GetPartitionKey (object document);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance object GetPartitionKey(object document) cil managed" />
<MemberSignature Language="DocId" Value="M:Microsoft.Azure.Documents.Client.IPartitionResolver.GetPartitionKey(System.Object)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>Microsoft.Azure.Documents.Client</AssemblyName>
<AssemblyVersion>1.14.0.0</AssemblyVersion>
<AssemblyVersion>1.16.0.0</AssemblyVersion>
<AssemblyVersion>1.17.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>Microsoft.Azure.DocumentDB.Core</AssemblyName>
<AssemblyVersion>1.5.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="document" Type="System.Object" />
</Parameters>
<Docs>
<param name="document">A document object.</param>
<summary>
Extracts the partition key from a document in the Azure DocumentDB database service.
</summary>
<returns>The partition key for the document.</returns>
<remarks>
Typical implementations will get the value of a single property from the document (e.g., user ID) or
extract a compound property, for e.g., version ID, device #) or implement custom logic based on the
type of the document, for e.g., extract value of id for users but extract userId for userMessages.
</remarks>
</Docs>
</Member>
<Member MemberName="ResolveForCreate">
<MemberSignature Language="C#" Value="public string ResolveForCreate (object partitionKey);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance string ResolveForCreate(object partitionKey) cil managed" />
<MemberSignature Language="DocId" Value="M:Microsoft.Azure.Documents.Client.IPartitionResolver.ResolveForCreate(System.Object)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>Microsoft.Azure.Documents.Client</AssemblyName>
<AssemblyVersion>1.14.0.0</AssemblyVersion>
<AssemblyVersion>1.16.0.0</AssemblyVersion>
<AssemblyVersion>1.17.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>Microsoft.Azure.DocumentDB.Core</AssemblyName>
<AssemblyVersion>1.5.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="partitionKey" Type="System.Object" />
</Parameters>
<Docs>
<param name="partitionKey">The partition key used to determine the target collection for create operations.</param>
<summary>
Given a partition key, this returns the collection self-link for creating a document
in the Azure DocumentDB database service.
</summary>
<returns>A self-link for the collection to create documents in for the specified partition key.</returns>
<remarks>
The return value must be a valid collection self-link string in the format dbs/db_rid/colls/col_rid.
</remarks>
</Docs>
</Member>
<Member MemberName="ResolveForRead">
<MemberSignature Language="C#" Value="public System.Collections.Generic.IEnumerable&lt;string&gt; ResolveForRead (object partitionKey);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Collections.Generic.IEnumerable`1&lt;string&gt; ResolveForRead(object partitionKey) cil managed" />
<MemberSignature Language="DocId" Value="M:Microsoft.Azure.Documents.Client.IPartitionResolver.ResolveForRead(System.Object)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>Microsoft.Azure.Documents.Client</AssemblyName>
<AssemblyVersion>1.14.0.0</AssemblyVersion>
<AssemblyVersion>1.16.0.0</AssemblyVersion>
<AssemblyVersion>1.17.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>Microsoft.Azure.DocumentDB.Core</AssemblyName>
<AssemblyVersion>1.5.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.Generic.IEnumerable&lt;System.String&gt;</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="partitionKey" Type="System.Object" />
</Parameters>
<Docs>
<param name="partitionKey">The partition key used to determine the target collections for reads, i.e., query or read-feed.</param>
<summary>
Given a partition key, this returns a list of collection self-links to read from.
</summary>
<returns>The self-links for the collections to perform read requests for the specified partition key.</returns>
<remarks>
The return value must be an IEnumerable of collection self-link strings in the format dbs/db_rid/colls/col_rid.
Unlike ResolveForCreate, this is a 1:N as a single partition key might be created in different collections over
time or because you are performing data migration of partition key between collections
in the Azure DocumentDB database service.
</remarks>
</Docs>
</Member>
</Members>
</Type>