-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathSqlRepository.cs
35 lines (31 loc) · 1.08 KB
/
SqlRepository.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using Dapper;
using System.Collections.Generic;
using System.Data;
using System.Threading.Tasks;
namespace DataAccessLayer
{
/// <summary>
/// The concrete implementation of a SQL repository
/// </summary>
/// <typeparam name="TEntity"></typeparam>
public abstract class SqlRepository<TEntity> : IGenericRepository<TEntity>
where TEntity : class
{
private string _connectionString;
private EDbConnectionTypes _dbType;
public SqlRepository(string connectionString)
{
_dbType = EDbConnectionTypes.SQL;
_connectionString = connectionString;
}
public IDbConnection GetOpenConnection()
{
return DbConnectionFactory.GetDbConnection(_dbType, _connectionString);
}
public abstract void DeleteAsync(int id);
public abstract Task<IEnumerable<TEntity>> GetAllAsync();
public abstract Task<TEntity> FindAsync(int id);
public abstract void InsertAsync(TEntity entity);
public abstract void UpdateAsync(TEntity entityToUpdate);
}
}