Working with Fluent Query Result Sets
Use the .field() method to get field values from a row in the result set.
Copy
var E = server.query.getAlias('entity');
var rows = server.query.from('entity', E)
.top(5)
.execute();
let output = '\n\nThe following entities were found:\n';
rows.map(function(r)
{
output += (' ' + r.field(E.Name) + '\n')
});
log(output);
The code above will log an output similar to the following in the trace_roll.log file:
Copy
-[START]---------------------------------------
Timestamp: 7/2/2020 1:15:34 PM
Message: INFO [CID=200524bb-8d28-4079-80c3-a003a9ecad7d]
The following entities were found:
entityBWTransitionActionGroup
SystemUserSecurityRole
BW
optionset
lookupCorrelationAttribute
Severity: Information
-[END]---------------------------------------
Map result sets to POCO objects
Use the .executeAndMap() method to map a fluent query result set to an entity alias. This creates a plain old CLR object (POCO) which allows you to access field values as object properties, instead of using the .field() method.
Copy
var E = server.query.getAlias('entity');
var rows = server.query.from('entity', E)
.top(5)
.executeAndMap(E);
let output = '\n\nThe following entities were found:\n';
rows.map(function(r)
{
output += (' ' + r.Name) + '\n')
});
log(output);
To map a fluent query result set to multiple entity aliases, use the .executeAndMapComplex() method.
Copy
var E = server.query.getAlias('entity');
var A = server.query.getAlias('attribute');
var rows = server.query.from('entity', E)
.innerJoin('attribute', A)
.on(E.EntityId.eq(A.EntityId))
.top(20)
.selectColumns(
E.Name,
A.Name)
.executeAndMapComplex({ entity : E, attribute : A});
rows.map(function(r)
{
var entityName = r.entity.Name;
var attrName = r.attribute.Name;
// do
});