Skip to content

DataReaders

Chad Jakoby edited this page Jan 12, 2019 · 6 revisions

With mapping:

Data Transfer Object (DTO):

public class User
{
	[Column("Id")]
	public string Id { get; set; }
	[Column("Name")]
	public string DisplayName { get; set; }
	[Column("Email")]
	public string Email { get; set; }

	[Column("Confirmed")]
	public bool EmailConfirmed { get; set; }

	[Column("JoinedOn")]
	public DateTime JoinedDate { get; set; }
}

Repository:

public UserRepository : Repository
{
	public UserRepository(RepositoryConfig config) : base(config) { }

	public ICollection<User> GetUsers()
	{
		return Execute<User>("SELECT * FROM Users");
	}
}

Without mapping:

public UserRepository : Repository
{
    public UserRepository(RepositoryConfig config) : base(config) { }

    public ICollection<User> GetUsers()
    {
        return Execute("SELECT * FROM Users"
                       // This can be replaced with a mapping function for improved readability:
                       (reader) =>
                       {
                           return new User()
                           {
                               Id = reader.Get<string>("Id"),
                               DisplayName = reader.Get<string>("Name"),
                               Email = reader.Get<string>("Email"),
                               EmailConfirmed = reader.Get<bool>("Confirmed"),
                               JoinedDate = reader.Get<DateTime>("JoinedOn")
                           };
                       });
	}
	return users;
    }
}
Clone this wiki locally