AggregateOperand.Single(CriteriaOperator) Method
Creates a new AggregateOperand which returns the single object from the AggregateOperand.CollectionProperty that matches the specified AggregateOperand.Condition. The collection must be empty or contain exactly one object.
Namespace: DevExpress.Data.Filtering
Assembly: DevExpress.Data.v24.2.dll
NuGet Package: DevExpress.Data
#Declaration
public AggregateOperand Single(
CriteriaOperator aggregatedExpression
)
#Parameters
Name | Type | Description |
---|---|---|
aggregated |
Criteria |
A Criteria |
#Returns
Type | Description |
---|---|
Aggregate |
An Aggregate |
#Example
#Example 1
Get a property’s value of a specific element from a child collection
Expression:
CriteriaOperator.FromLambda<Order, string>(o => o.OrderItems.SingleOrDefault(oi => oi.ItemPrice == 40).OrderItemName);
Input:
Order | Order | Item |
---|---|---|
Order0 | ||
Order | 30 | |
Order | 40 |
The result: OrderItem2
#Example 2
Get a specific element from a child collection.
Expression:
CriteriaOperator.FromLambda<Order, OrderItem>(o => o.OrderItems.SingleOrDefault(oi => oi.ItemPrice == 40));
Input:
Order | Order | Order | Item |
---|---|---|---|
Order0 | |||
0 | Order | 30 | |
1 | Order | 40 |
The result: 1
#Example 3
Get a specific element from a child collection and use it in another expression.
Expression:
CriteriaOperator.FromLambda<OrderItem>(oi => oi.Order == FromLambdaFunctions.FreeJoin<Order>(o => o.OrderItems.Any(oii => oii.ItemPrice == 456)).SingleOrDefault());
Input:
Order | Order | Order | Item |
---|---|---|---|
1 | Order0 | ||
Order | 1 | ||
Order | 456 | ||
Order | 3 | ||
Order | 4 | ||
2 | Order1 | ||
Order | 30 | ||
Order | 40 |
The result:
Order | Item |
---|---|
Order | 1 |
Order | 456 |
Order | 3 |
Order | 4 |