ISqlExecutor.SelectAsync<TModel>(string sqlText, params object[] parameters) Method
.NET Standard 2.x
Asynchronously executes the SQL SELECT statement and returns a Task<IList<TModel>>
object which represents the result set.
Namespace: SnapObjects.Data
Assembly: SnapObjects.Data.dll
Syntax
Task<IList<TModel>> SelectAsync<TModel>(string sqlText, params object[] parameters);
Type Parameters
TModel
The datatype of the model object which represents the data row in the result set.
You can also specify DynamicModel to TModel
if you do not want to define a custom model class.
Parameters
sqlText
System.String
A raw SQL statement which contains the parameter placeholders.
The proper syntax of a parameter placeholder is specific to the data source (e.g., @newFirstName
for SQL Server). To make a parameterized SQL ( e.g., update Person set FirstName = @newFirstName where PersonId = 1
), these placeholders are filled in with the actual parameter values when the SQL statement is executed.
parameters
System.Object[]
(Optional) One or more ParamValue objects which contain the values corresponding to the SQL parameter identifier names.
You can also pass the arguments directly in the order in which each parameter identifier name appears in sqlText
for the first time, without using the ParamValue object.
Returns
Task<IList<TModel>>
Returns a task that represents the asynchronous operation.
Remarks
You can use parameter placeholders in the raw SQL Statement.
It is recommended to use the syntax for parameter placeholders that is specific to the data source.
e.g., uses @parametername
for SQL Server and uses :parametername
for Oracle.
Examples
The following code example demonstrates how to use the SelectAsync<TModel> (String, params object[])
method to execute the SQL SELECT statement and put the query result to a list of models.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using SnapObjects.Data;
namespace Appeon.ApiDoc.ISqlExecutorExamples
{
public class SelectAsyncExample
{
private readonly SchoolContext _context;
public SelectAsyncExample(SchoolContext dataContext)
{
// Sets the data context.
_context = dataContext;
}
public async void Example1()
{
// Defines the SQL statement.
var sql = @"SELECT CourseID, Title
FROM Course
WHERE CourseID = @id";
// Queries data and puts the query result to a list of
// models.
IList<DynamicModel> list = await _context.SqlExecutor
.SelectAsync<DynamicModel>(sql, 1061);
Console.WriteLine("Count: {0}.", list.Count);
Console.WriteLine("CourseID: {0}",
list.FirstOrDefault().GetValue<int>("CourseID"));
Console.WriteLine("Title: {0}",
list.FirstOrDefault().GetValue<string>("Title"));
/*This code produces the following output:
Count: 1.
CourseID: 1061
Title: Physics
*/
}
}
}
Applies to
.NET Standard
2.x