-
Notifications
You must be signed in to change notification settings - Fork 0
Example.DbDataMapper
IzayoiJiichan edited this page Aug 16, 2024
·
5 revisions
using System.Collections.Generic;
using System.Threading.Tasks;
using Izayoi.Data;
using Microsoft.Data.SqlClient; // for SQL Server
//using Microsoft.Data.Sqlite; // for SQLite
//using MySqlConnector; // for MySQL
//using Npgsql; // for PostgreSQL
public class Example()
{
private readonly dbConnectionString;
private readonly DbDataMapper dbDataMapper = new();
public async Task<List<User>> GetUsers(CancellationToken cancellationToken)
{
using SqlConnection dbConnection = new(dbConnectionString);
using SqlCommand dbCommand = dbConnection.CreateCommand();
dbConnection.Open();
List<User> users;
// Select method A
{
dbCommand.CommandText = "SELECT * FROM users";
using SqlDataReader dbDataReader = await dbCommand.ExecuteReaderAsync(cancellationToken);
users = await dbDataMapper.ReadToObjectsAsync<User>(dbDataReader, cancellationToken);
}
// Select method B
{
dbCommand.CommandText = "SELECT * FROM users";
users = await dbDataMapper.ExecuteQueryAsync<User>(dbCommand, cancellationToken);
}
// Select method C
{
users = await dbDataMapper.SelectAllAsync<User>(dbCommand, cancellationToken);
}
dbConnection.Close();
return users;
}
public async Task<User?> GetUser(int userId, CancellationToken cancellationToken)
{
using SqlConnection dbConnection = new(dbConnectionString);
using SqlCommand dbCommand = dbConnection.CreateCommand();
dbConnection.Open();
dbCommand.CommandText = "SELECT * FROM users WHERE id = @id";
dbCommand.Parameters.Add(new SqlParameter("@id", System.Data.SqlDbType.Int) { Value = userId });
using SqlDataReader dbDataReader = await dbCommand.ExecuteReaderAsync(cancellationToken);
User? user = await dbDataMapper.ReadToObjectAsync<User>(dbDataReader, cancellationToken);
dbConnection.Close();
return user;
}
}
- Izayoi.Data
- Izayoi.Data.Query
- Izayoi.Data.Repository
- Izayoi.Data.Comparable
- Izayoi.Data.Packs
- Izayoi.Data.TimestampedObjects
- Izayoi.Data.Validation
Examples
- Database
- Map Class
- DbCommandAdapter
- DbDataMapper
- QueryOption
- QueryBuilder
- DbRepository
- Comparable
- Packs
- Timestamped Objects
- DataValidator
FAQ