/// <summary> /// Executes queries and converts records to objects using specified ctor and property mappings. /// </summary> static void GetDataUsingCtor() { var propertyMappings = new PropertyColumnMapping[] { new PropertyColumnMapping("Name", typeof(string)) }; var ctorMappings = new ColumnConstructorParameterMappingCollection<Company>(new Type[] { typeof(int), typeof(string) }); ctorMappings.Add("CompanyID", 0); ctorMappings.Add("RegistryNumber", 1); var company = GetSingleCompany(ctorMappings, propertyMappings); Console.WriteLine("\nCompany 3 is {0} {1}\n", company.Registry, company.Name); company = GetFirstCompany(ctorMappings, propertyMappings); Console.WriteLine("1st company is {0} {1}\n", company.Registry, company.Name); var companies = GetAllCompanies(ctorMappings, propertyMappings); Console.WriteLine("Companies are"); foreach (var c in companies) { Console.WriteLine("{0}: {1} {2}", c.ID, c.Registry, c.Name); } }
/// <summary> /// Executes queries and converts records to objects using specified ctor and property mappings. /// </summary> static void GetDataUsingCtor() { var propertyMappings = new PropertyColumnMapping[] { new PropertyColumnMapping("Name", typeof(string)) }; var ctorMappings = new ColumnConstructorParameterMappingCollection <Company>(new Type[] { typeof(int), typeof(string) }); ctorMappings.Add("CompanyID", 0); ctorMappings.Add("RegistryNumber", 1); var company = GetSingleCompany(ctorMappings, propertyMappings); Console.WriteLine("\nCompany 3 is {0} {1}\n", company.Registry, company.Name); company = GetFirstCompany(ctorMappings, propertyMappings); Console.WriteLine("1st company is {0} {1}\n", company.Registry, company.Name); var companies = GetAllCompanies(ctorMappings, propertyMappings); Console.WriteLine("Companies are"); foreach (var c in companies) { Console.WriteLine("{0}: {1} {2}", c.ID, c.Registry, c.Name); } }
/// <summary> /// Executes query that might return multiple records, but only takes 1st one. /// </summary> static IEnumerable<Company> GetAllCompanies(ColumnConstructorParameterMappingCollection<Company> ctorMappings, IEnumerable<PropertyColumnMapping> propMappings) { string sql = "SELECT * FROM Company;"; var settings = new SqlCommandSettings(sql, CommandType.Text); var executor = new SqlExecutor(cs); var companies = executor.GetRecords<Company>(settings, ctorMappings, propMappings); return companies; }
/// <summary> /// Executes query that might return multiple records, but only takes 1st one. /// </summary> static IEnumerable <Company> GetAllCompanies(ColumnConstructorParameterMappingCollection <Company> ctorMappings, IEnumerable <PropertyColumnMapping> propMappings) { string sql = "SELECT * FROM Company;"; var settings = new SqlCommandSettings(sql, CommandType.Text); var executor = new SqlExecutor(cs); var companies = executor.GetRecords <Company>(settings, ctorMappings, propMappings); return(companies); }
/// <summary> /// Executes query that might return multiple records, but only takes 1st one. /// </summary> static Company GetFirstCompany(ColumnConstructorParameterMappingCollection <Company> ctorMappings, IEnumerable <PropertyColumnMapping> propMappings) { string sql = "SELECT * FROM Company WHERE RegistryNumber LIKE '788%';"; var settings = new SqlCommandSettings(sql, CommandType.Text); var executor = new SqlExecutor(cs); var company = executor.GetFirstRecord <Company>(settings, ctorMappings, propMappings); return(company); }
/// <summary> /// Executes query that expects only 1 record to be returned. /// </summary> static Company GetSingleCompany(ColumnConstructorParameterMappingCollection <Company> ctorMappings, IEnumerable <PropertyColumnMapping> propMappings) { string sql = "SELECT * FROM Company WHERE CompanyID = @id;"; int id = 3; var settings = new SqlCommandSettings(sql, CommandType.Text); settings.AddParameter(new SqlParameter("@id", id)); var executor = new SqlExecutor(cs); var company = executor.GetSingleRecord <Company>(settings, ctorMappings, propMappings); return(company); }
/// <summary> /// Execute query that returns only single record. /// </summary> /// <typeparam name="T">Type of an object read.</typeparam> /// <param name="settings">The settings for the command to be executed.</param> /// <param name="ctorMappings">The mappings between constructor arguments and columns.</param> /// <param name="propMappings">The mappings between properties and columns.</param> /// <returns>A single <typeparamref name="T"/> instance or default <typeparamref name="T"/>.</returns> public T GetSingleRecord <T>(CommandSettings settings, ColumnConstructorParameterMappingCollection <T> ctorMappings, IEnumerable <PropertyColumnMapping> propMappings = null) where T : class { using (var connection = GetConnection()) using (var command = GetCommand(settings, connection)) { Exception exception; if (connection.TryOpen(out exception)) { using (var reader = command.ExecuteReader()) { return(reader.GetSingleRecord <T>(ctorMappings, propMappings)); } } else { throw exception; } } }
/// <summary> /// Executes query that expects only 1 record to be returned. /// </summary> static Company GetSingleCompany(ColumnConstructorParameterMappingCollection<Company> ctorMappings, IEnumerable<PropertyColumnMapping> propMappings) { string sql = "SELECT * FROM Company WHERE CompanyID = @id;"; int id = 3; var settings = new SqlCommandSettings(sql, CommandType.Text); settings.AddParameter(new SqlParameter("@id", id)); var executor = new SqlExecutor(cs); var company = executor.GetSingleRecord<Company>(settings, ctorMappings, propMappings); return company; }
/// <summary> /// Executes query that might return multiple records, but only takes 1st one. /// </summary> static Company GetFirstCompany(ColumnConstructorParameterMappingCollection<Company> ctorMappings, IEnumerable<PropertyColumnMapping> propMappings) { string sql = "SELECT * FROM Company WHERE RegistryNumber LIKE '788%';"; var settings = new SqlCommandSettings(sql, CommandType.Text); var executor = new SqlExecutor(cs); var company = executor.GetFirstRecord<Company>(settings, ctorMappings, propMappings); return company; }