Class ExpressionHelper
Stellt Methoden zur Verfügung um System.Linq.Expressions.Expressions zu erzeugen.
Inheritance
Inherited Members
Namespace: Dataport.AppFrameDotNet.DotNetTools.Collections
Assembly: Dataport.AppFrameDotNet.DotNetTools.dll
Syntax
public static class ExpressionHelper
Methods
ChangeInputType<TBefore, TAfter, TResult>(Expression<Func<TBefore, TResult>>)
Konkretisiert den Typen des Parameters der Expression.
Declaration
public static Expression<Func<TAfter, TResult>> ChangeInputType<TBefore, TAfter, TResult>(Expression<Func<TBefore, TResult>> context)
where TAfter : TBefore
Parameters
Type | Name | Description |
---|---|---|
System.Linq.Expressions.Expression<System.Func<TBefore, TResult>> | context | Expression, deren Parametertyp konkretisiert werden soll. |
Returns
Type | Description |
---|---|
System.Linq.Expressions.Expression<System.Func<TAfter, TResult>> | Expression, die identisch zur ursprünglichen Expression ist, aber einen konkreteren Parametertypen definiert. |
Type Parameters
Name | Description |
---|---|
TBefore | Typ des Parameters in der ursprünglichen Expression. |
TAfter | Konkreterer Typ für den Parameter der resultierenden Expression. |
TResult | Typ des Rückgabewerts der Expression. |
Remarks
Zur Verwendung von allgemein definierten Expressions für konkretere Typen, da die Kovarianz nicht automatisch aufgelöst werden kann.
CreateEqualExpression<TInstance, TElement>(Expression<Func<TInstance, TElement>>, TElement)
Erzeugt eine Expression für einen Gleichheitsausdruck. Verhalten: Gleichheit funktioniert mit implementierten Operator oder Referenzgleichheit, nicht mit IComparable.
Declaration
public static Expression<Func<TInstance, bool>> CreateEqualExpression<TInstance, TElement>(Expression<Func<TInstance, TElement>> target, TElement filter)
Parameters
Type | Name | Description |
---|---|---|
System.Linq.Expressions.Expression<System.Func<TInstance, TElement>> | target | Eine Expression, welche einen Wert |
TElement | filter | Der Wert mit dem verglichen werden soll. |
Returns
Type | Description |
---|---|
System.Linq.Expressions.Expression<System.Func<TInstance, System.Boolean>> | Die Gleichheits-Expression. |
Type Parameters
Name | Description |
---|---|
TInstance | Der Typ der Instanz |
TElement | Der Typ des Elements |
CreateLikeExpression<TElement>(Expression<Func<TElement, String>>, String, Char)
Erzeugt eine Expression für String-Like-Suchanfragen. Verhalten: Wildcards dürfen nur am Anfang und Ende des Filters stehen. Die Elemente der später verwendeten Collection dürfen nicht null sein.
Declaration
public static Expression<Func<TElement, bool>> CreateLikeExpression<TElement>(Expression<Func<TElement, string>> valueSelector, string filter, char wildcard = '*')
Parameters
Type | Name | Description |
---|---|---|
System.Linq.Expressions.Expression<System.Func<TElement, System.String>> | valueSelector | Selektionslogik für das Element des Objekts |
System.String | filter | Der Filterausdruck |
System.Char | wildcard | Die Wildcard im Filterausdruck. |
Returns
Type | Description |
---|---|
System.Linq.Expressions.Expression<System.Func<TElement, System.Boolean>> | Die Suchexpression. |
Type Parameters
Name | Description |
---|---|
TElement | Der Typ des Elements |
ExtractMemberAttribute<TInstance, TAttribute>(Expression<Func<TInstance, Object>>)
Gibt das Attribut eines Members zurück, welcher in der Anweisung vorkommt. Verhalten: Funktioniert auch für Cast-Ausdrücke und Vergleichsausdrücke. Kommen mehrere Properties in dem Ausdruck vor, wird das Erste genommen.
Declaration
public static TAttribute ExtractMemberAttribute<TInstance, TAttribute>(Expression<Func<TInstance, object>> expression)
where TInstance : class where TAttribute : Attribute
Parameters
Type | Name | Description |
---|---|---|
System.Linq.Expressions.Expression<System.Func<TInstance, System.Object>> | expression | Anweisungsvorschrift, wie das Property zu laden ist. |
Returns
Type | Description |
---|---|
TAttribute | Das Attribut des Properties |
Type Parameters
Name | Description |
---|---|
TInstance | Typ der Instanz |
TAttribute | Typ des Attributs |
ExtractMemberAttribute<TInstance, TValue, TAttribute>(Expression<Func<TInstance, TValue>>)
Gibt das Attribut eines Members zurück, welcher in der Anweisung vorkommt. Verhalten: Funktioniert auch für Cast-Ausdrücke und Vergleichsausdrücke. Kommen mehrere Properties in dem Ausdruck vor, wird das Erste genommen.
Declaration
public static TAttribute ExtractMemberAttribute<TInstance, TValue, TAttribute>(Expression<Func<TInstance, TValue>> expression)
where TInstance : class where TAttribute : Attribute
Parameters
Type | Name | Description |
---|---|---|
System.Linq.Expressions.Expression<System.Func<TInstance, TValue>> | expression | Anweisungsvorschrift, wie das Property zu laden ist. |
Returns
Type | Description |
---|---|
TAttribute | Das Attribut des Properties |
Type Parameters
Name | Description |
---|---|
TInstance | Typ der Instanz |
TValue | Typ des Wertes |
TAttribute | Typ des Attributs |
ExtractMemberName<TInstance>(Expression<Func<TInstance, Object>>)
Gibt den Namen eines Members zurück, welcher in der Anweisung vorkommt. Verhalten: Funktioniert auch für Cast-Ausdrücke und Vergleichsausdrücke. Kommen mehrere Properties in dem Ausdruck vor, wird der Name des Ersten genommen.
Declaration
public static string ExtractMemberName<TInstance>(Expression<Func<TInstance, object>> expression)
where TInstance : class
Parameters
Type | Name | Description |
---|---|---|
System.Linq.Expressions.Expression<System.Func<TInstance, System.Object>> | expression | Anweisungsvorschrift, wie das Property zu laden ist. |
Returns
Type | Description |
---|---|
System.String | Der Name des Properties |
Type Parameters
Name | Description |
---|---|
TInstance | Typ der Instanz |
ExtractMemberName<TInstance, TValue>(Expression<Func<TInstance, TValue>>)
Gibt den Namen eines Members zurück, welcher in der Anweisung vorkommt. Verhalten: Funktioniert auch für Cast-Ausdrücke und Vergleichsausdrücke. Kommen mehrere Properties in dem Ausdruck vor, wird der Name des Ersten genommen.
Declaration
public static string ExtractMemberName<TInstance, TValue>(Expression<Func<TInstance, TValue>> expression)
where TInstance : class
Parameters
Type | Name | Description |
---|---|---|
System.Linq.Expressions.Expression<System.Func<TInstance, TValue>> | expression | Anweisungsvorschrift, wie das Property zu laden ist. |
Returns
Type | Description |
---|---|
System.String | Der Name des Properties |
Type Parameters
Name | Description |
---|---|
TInstance | Typ der Instanz |
TValue | Typ des Wertes |
SelectPropertyByName<TInstance, TOut>(String)
Erzeugt eine Expression, die die Property mit dem angegebenen Namen selektiert.
Declaration
public static Expression<Func<TInstance, TOut>> SelectPropertyByName<TInstance, TOut>(string propertyName)
where TInstance : class
Parameters
Type | Name | Description |
---|---|---|
System.String | propertyName | Name der Property, die durch die Expression selektiert werden soll |
Returns
Type | Description |
---|---|
System.Linq.Expressions.Expression<System.Func<TInstance, TOut>> | Eine Expression, die die Property selektiert |
Type Parameters
Name | Description |
---|---|
TInstance | Typ der Entität, deren Property selektiert werden soll. |
TOut | Typ der Property, die selektiert werden soll. |
SelectPropertyByName<TInstance, TOut>(String, ParameterExpression)
Erzeugt eine Expression, die die Property mit dem angegebenen Namen selektiert mit Angabe der zu verwendenden ParameterExpression für den Property-Zugriff.
Declaration
public static Expression<Func<TInstance, TOut>> SelectPropertyByName<TInstance, TOut>(string propertyName, ParameterExpression parameter)
where TInstance : class
Parameters
Type | Name | Description |
---|---|---|
System.String | propertyName | Name der Property, die durch die Expression selektiert werden soll |
System.Linq.Expressions.ParameterExpression | parameter | ParameterExpression, über die auf die Property zugegriffen werden soll. |
Returns
Type | Description |
---|---|
System.Linq.Expressions.Expression<System.Func<TInstance, TOut>> | Eine Expression, die die Property selektiert |
Type Parameters
Name | Description |
---|---|
TInstance | Typ der Entität, deren Property selektiert werden soll. |
TOut | Typ der Property, die selektiert werden soll. |
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | Wird geworfen, wenn |
System.InvalidOperationException | Wird geworfen, wenn der Typ von |
SelectPropertyByNameX<TInstance>(String)
Erzeugt eine Expression, die die Property mit dem angegebenen Namen selektiert.
Declaration
public static LambdaExpression SelectPropertyByNameX<TInstance>(string propertyName)
where TInstance : class
Parameters
Type | Name | Description |
---|---|---|
System.String | propertyName | Name der Property, die durch die Expression selektiert werden soll |
Returns
Type | Description |
---|---|
System.Linq.Expressions.LambdaExpression | Eine Expression, die die Property selektiert |
Type Parameters
Name | Description |
---|---|
TInstance | Typ der Entität, deren Property selektiert werden soll. |
SelectPropertyByNameX<TInstance>(String, ParameterExpression)
Erzeugt eine Expression, die die Property mit dem angegebenen Namen selektiert mit Angabe der zu verwendenden ParameterExpression für den Property-Zugriff.
Declaration
public static LambdaExpression SelectPropertyByNameX<TInstance>(string propertyName, ParameterExpression parameter)
where TInstance : class
Parameters
Type | Name | Description |
---|---|---|
System.String | propertyName | Name der Property, die durch die Expression selektiert werden soll |
System.Linq.Expressions.ParameterExpression | parameter | ParameterExpression, über die auf die Property zugegriffen werden soll. |
Returns
Type | Description |
---|---|
System.Linq.Expressions.LambdaExpression | Eine Expression, die die Property selektiert |
Type Parameters
Name | Description |
---|---|
TInstance | Typ der Entität, deren Property selektiert werden soll. |