Show / Hide Table of Contents

    ISqlExecutor.SelectAsync<TModel>(ISqlQueryBuilder queryBuilder, params object[] parameters) Method

    .NET Standard 2.x

    Asynchronously executes the SQL SELECT statement generated by an ISqlQueryBuilder object and returns a Task<IList<TModel>> object which represents the result set.

    Namespace: SnapObjects.Data

    Assembly: SnapObjects.Data.dll

    Syntax

      public Task<IList<TModel>> SelectAsync<TModel>(ISqlQueryBuilder queryBuilder, 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

    queryBuilder SnapObjects.Data.ISqlQueryBuilder

    A SqlQueryBuilder object which can be used to generate a SQL SELECT statement.

    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 they appear in the SQL SELECT statement generated by queryBuilder 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>(ISqlQueryBuilder, params object[]) method to build and execute the SQL statement using SqlQueryBuilder and return the 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 Example3()
            {
                // Creates a SqlQueryBuilder.
                var sql = new SqlQueryBuilder();
                
                // Defines the select list.
                string[] columns = { "CourseID", "Title" };
                
                // Builds the SQL statement.
                sql.Select(columns)
                   .From("Course")
                   .Where("CourseID", SqlBuilder.Parameter<int>("id"));
                   
                // Asynchronously Executes the SQL statement and puts the query result
                // to a list of models.
                int id = 1061;
                IList<DynamicModel> list = await _context.SqlExecutor
                                                    .SelectAsync<DynamicModel>(sql, id);
                
                Console.WriteLine("Records 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:
                
                    Records Count = 1.
                    CourseID: 1061
                    Title: Physics
                */
            }
        }
    }
    

    Applies to

    .NET Standard

    2.x

    Back to top Generated by Appeon