Class Result
- Namespace
- YndigoBlue.Velocity.Model
- Assembly
- YndigoBlue.Velocity.dll
Represents a single row returned from a SELECT query.
public class Result : Datum
- Inheritance
-
Result
- Extension Methods
Examples
Basic query and result access:
using (Manager manager = new Manager(connection))
{
manager.LoadSchema("my_schema");
Schema schema = manager.GetSchema("my_schema");
Table usersTable = schema["users"];
Query query = new Query();
query.AddFromItem(usersTable);
query.AddSelectItem(usersTable["id"]);
query.AddSelectItem(usersTable["username"]);
query.AddSelectItem(usersTable["email"]);
query.AddSelectItem(usersTable["created_at"]);
IEnumerable<Result> results = manager.Retrieve(query);
foreach (Result result in results)
{
int id = result.GetFieldInt("id");
string username = result.GetFieldString("username");
string email = result.GetFieldString("email");
DateTime createdAt = result.GetFieldDateTime("created_at");
Console.WriteLine($"{id}: {username} ({email}) - {createdAt}");
}
}
Handling NULL values:
Query query = new Query();
query.AddFromItem(usersTable);
query.AddSelectItem(usersTable["id"]);
query.AddSelectItem(usersTable["last_login"]);
IEnumerable<Result> results = manager.Retrieve(query);
foreach (Result result in results)
{
int id = result.GetFieldInt("id");
if (result.IsNull(usersTable["last_login"]))
{
Console.WriteLine($"User {id} has never logged in");
}
else
{
DateTime lastLogin = result.GetFieldDateTime("last_login");
Console.WriteLine($"User {id} last logged in: {lastLogin}");
}
}
Binding results to C# objects:
public class User
{
public int Id { get; set; }
public string Username { get; set; }
public string Email { get; set; }
public DateTime CreatedAt { get; set; }
}
Query query = new Query();
query.AddFromItem(usersTable);
query.AddSelectItem(usersTable["id"]);
query.AddSelectItem(usersTable["username"]);
query.AddSelectItem(usersTable["email"]);
query.AddSelectItem(usersTable["created_at"]);
IEnumerable<Result> results = manager.Retrieve(query);
// Automatically bind results to User objects
List<User> users = manager.BindResults<User>(results, BindingType.SnakeCase);
foreach (User user in users)
{
Console.WriteLine($"{user.Id}: {user.Username}");
}
Working with calculated fields:
Expression totalExpression = new Expression("total");
totalExpression.Add(ordersTable["quantity"]);
totalExpression.Add(new ArithmeticOperator(ArithmeticType.Multiply));
totalExpression.Add(ordersTable["price"]);
Query query = new Query();
query.AddFromItem(ordersTable);
query.AddSelectItem(ordersTable["id"]);
query.AddSelectItem(totalExpression);
IEnumerable<Result> results = manager.Retrieve(query);
foreach (Result result in results)
{
int id = result.GetFieldInt("id");
decimal total = result.GetFieldDecimal("total");
Console.WriteLine($"Order {id}: ${total}");
}
Remarks
Result is the primary object for working with query data. Each Result instance represents one row from the database, with strongly-typed access to column values through inherited Datum methods.
Results are returned as collections from Retrieve(Query) and can be:
- Accessed field-by-field using GetField* methods
- Bound to C# objects using Engine.Manager.BindResults<T>(IEnumerable<Result>, Enums.BindingType)
- Checked for NULL values using IsNull methods
Constructors
Fields
Properties
Methods
- IsNull(ISelectItem)
Determines if the select item is null within this datum either as a result of not being in the datum or being in the datum and being set to null.