Search Results for

    Show / Hide Table of Contents

    Class Template

    A helper class to build a JSON command from a string with tag replacement

    Inheritance
    Object
    Template
    Template<TInput, TResult>
    Inherited Members
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Object.ReferenceEquals(Object, Object)
    Namespace: MongoDB.Entities
    Assembly: MongoDB.Entities.dll
    Syntax
    public class Template

    Constructors

    Template(String)

    Initialize a command builder with the supplied template string.

    Declaration
    public Template(string template)
    Parameters
    Type Name Description
    String template

    The template string with tags for targeting replacements such as "<Author.Name>"

    Methods

    AppendStage(String)

    Appends a pipeline stage json string to the current pipeline. This method can only be used if the template was initialized with an array of pipeline stages. If this is going to be the first stage of your pipeline, you must instantiate the template with an empty array string new Template("[]")

    WARNING: Appending stages prevents this template from being cached!!!

    Declaration
    public void AppendStage(string pipelineStageString)
    Parameters
    Type Name Description
    String pipelineStageString

    The pipeline stage json string to append

    Collection<TEntity>()

    Gets the collection name of a given entity type and replaces matching tags in the template such as "<EntityName>"

    Declaration
    public Template Collection<TEntity>()
        where TEntity : IEntity
    Returns
    Type Description
    Template
    Type Parameters
    Name Description
    TEntity

    The type of entity to get the collection name of

    Elements<T>(Int32, Expression<Func<T, Object>>)

    Turns the given index and expression into a path with the filtered positional identifier prepended to the property path like "a.Name" and replaces matching tags in the template such as "<a.Name>"

    Declaration
    public Template Elements<T>(int index, Expression<Func<T, object>> expression)
    Parameters
    Type Name Description
    Int32 index

    0=a 1=b 2=c 3=d and so on...

    Expression<Func<T, Object>> expression

    x => x.SomeProp

    Returns
    Type Description
    Template
    Type Parameters
    Name Description
    T

    Elements<T>(Expression<Func<T, Object>>)

    Turns the given expression into a path without any filtered positional identifier prepended to it like "Name" and replaces matching tags in the template such as "<Name>"

    Declaration
    public Template Elements<T>(Expression<Func<T, object>> expression)
    Parameters
    Type Name Description
    Expression<Func<T, Object>> expression

    x => x.SomeProp

    Returns
    Type Description
    Template
    Type Parameters
    Name Description
    T

    Path<T>(Expression<Func<T, Object>>)

    Turns the given expression into a dotted path like "SomeList.SomeProp" and replaces matching tags in the template such as "<SomeList.SomeProp>"

    Declaration
    public Template Path<T>(Expression<Func<T, object>> expression)
    Parameters
    Type Name Description
    Expression<Func<T, Object>> expression

    x => x.SomeList[0].SomeProp

    Returns
    Type Description
    Template
    Type Parameters
    Name Description
    T

    Paths<T>(Expression<Func<T, Object>>)

    Turns the property paths in the given new expression into paths like "Prop1.Child1 & Prop2.Child2" and replaces matching tags in the template.

    Declaration
    public Template Paths<T>(Expression<Func<T, object>> expression)
    Parameters
    Type Name Description
    Expression<Func<T, Object>> expression

    x => new { x.Prop1.Child1, x.Prop2.Child2 }

    Returns
    Type Description
    Template
    Type Parameters
    Name Description
    T

    PosAll<T>(Expression<Func<T, Object>>)

    Turns the given expression into a path with the all positional operator like "Authors.\([].Name&quot; and replaces matching tags in the template such as &quot;&lt;Authors.\)[].Name>"

    Declaration
    public Template PosAll<T>(Expression<Func<T, object>> expression)
    Parameters
    Type Name Description
    Expression<Func<T, Object>> expression

    x => x.SomeList[0].SomeProp

    Returns
    Type Description
    Template
    Type Parameters
    Name Description
    T

    PosFiltered<T>(Expression<Func<T, Object>>)

    Turns the given expression into a positional filtered path like "Authors.\([a].Name&quot; and replaces matching tags in the template such as &quot;&lt;Authors.\)[a].Name>"

    TIP: Index positions start from [0] which is converted to $[a] and so on.

    Declaration
    public Template PosFiltered<T>(Expression<Func<T, object>> expression)
    Parameters
    Type Name Description
    Expression<Func<T, Object>> expression

    x => x.SomeList[0].SomeProp

    Returns
    Type Description
    Template
    Type Parameters
    Name Description
    T

    PosFirst<T>(Expression<Func<T, Object>>)

    Turns the given expression into a path with the first positional operator like "Authors.\(.Name&quot; and replaces matching tags in the template such as &quot;&lt;Authors.\).Name>"

    Declaration
    public Template PosFirst<T>(Expression<Func<T, object>> expression)
    Parameters
    Type Name Description
    Expression<Func<T, Object>> expression

    x => x.SomeList[0].SomeProp

    Returns
    Type Description
    Template
    Type Parameters
    Name Description
    T

    Properties<T>(Expression<Func<T, Object>>)

    Turns the property paths in the given new expression into property names like "PropX & PropY" and replaces matching tags in the template.

    Declaration
    public Template Properties<T>(Expression<Func<T, object>> expression)
    Parameters
    Type Name Description
    Expression<Func<T, Object>> expression

    x => new { x.Prop1.PropX, x.Prop2.PropY }

    Returns
    Type Description
    Template
    Type Parameters
    Name Description
    T

    Property<T>(Expression<Func<T, Object>>)

    Turns the given member expression into a property name like "SomeProp" and replaces matching tags in the template such as "<SomeProp>"

    Declaration
    public Template Property<T>(Expression<Func<T, object>> expression)
    Parameters
    Type Name Description
    Expression<Func<T, Object>> expression

    x => x.RootProp.SomeProp

    Returns
    Type Description
    Template
    Type Parameters
    Name Description
    T

    RenderToString()

    Executes the tag replacement and returns a string.

    TIP: if all the tags don't match, an exception will be thrown.

    Declaration
    public string RenderToString()
    Returns
    Type Description
    String

    Tag(String, String)

    Replaces the given tag in the template like "<search_term>" with the supplied value.

    Declaration
    public Template Tag(string tagName, string replacementValue)
    Parameters
    Type Name Description
    String tagName

    The tag name without the surrounding < and >

    String replacementValue

    The value to replace with

    Returns
    Type Description
    Template

    ToArrayFilters<T>()

    Executes the tag replacement and returns array filter definitions.

    TIP: if all the tags don't match, an exception will be thrown.

    Declaration
    public IEnumerable<ArrayFilterDefinition> ToArrayFilters<T>()
    Returns
    Type Description
    IEnumerable<ArrayFilterDefinition>
    Type Parameters
    Name Description
    T

    ToPipeline<TInput, TOutput>()

    Executes the tag replacement and returns a pipeline definition.

    TIP: if all the tags don't match, an exception will be thrown.

    Declaration
    public PipelineDefinition<TInput, TOutput> ToPipeline<TInput, TOutput>()
    Returns
    Type Description
    PipelineDefinition<TInput, TOutput>
    Type Parameters
    Name Description
    TInput

    The input type

    TOutput

    The output type

    ToStages()

    Executes the tag replacement and returns the pipeline stages as an array of BsonDocuments.

    TIP: if all the tags don't match, an exception will be thrown.

    Declaration
    public IEnumerable<BsonDocument> ToStages()
    Returns
    Type Description
    IEnumerable<BsonDocument>

    ToString()

    Declaration
    [Obsolete("Please use the `RenderToString` method instead of `ToString`", true)]
    public string ToString()
    Returns
    Type Description
    String
    In this article
    Back to top Developed by Đĵ ΝιΓΞΗΛψΚ and contributors / Licensed under MIT / Website generated by DocFX