Click or drag to resize

IQueryResultSetTDataUnion(ExpressionFuncTData, Boolean) Method

Union the results in this set with those matching query

Namespace: SanteDB.Core.Model.Query
Assembly: SanteDB.Core.Model (in SanteDB.Core.Model.dll) Version: 3.0.2081-alpha+0a330d5f5a5d3cb3e6e945ef530e94ac5671b49c
Syntax
IQueryResultSet<TData> Union(
	Expression<Func<TData, bool>> query
)

Parameters

query  ExpressionFuncTData, Boolean

[Missing <param name="query"/> documentation for "M:SanteDB.Core.Model.Query.IQueryResultSet`1.Union(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})"]

Return Value

IQueryResultSetTData

[Missing <returns> documentation for "M:SanteDB.Core.Model.Query.IQueryResultSet`1.Union(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})"]

Remarks

This method returns a new IQueryResultSetTData which contains a UNION of results in the current set and a new set described by query.

The method used to load these results depends on the underlying persistence layer, however in SQL would be:

var results = repository.Find(o=>o.StatusConceptKey == StatusKeys.Active).AsResultSet(); results = results.Union(o=>o.StatusConceptKey == StatusKeys.New).Where(o => o.CreationTime > DateTimeOffset.Now);

In SQL based persistence services this results in a query similar to:

SELECT * FROM ( SELECT * FROM x WHERE sts_cd_id = 'ACTIVE_UUID' UNION SELECT * FROM x WHERE sts_cd_id = 'NEW_UUID' ) I WHERE crt_utc > CURRENT_TIMESTAMP;

See Also