/// <inherit/> public async Task <T> FindAsync(Guid id) { var query = QueryBuilderHelper.GetFindQuery <T>(); var paramObject = new ExpandoObject(); paramObject.TryAdd(QueryBuilderHelper.GetPropertiesWithAttribute <T>(typeof(KeyAttribute)).FirstOrDefault().Name, id); var record = await Connection.QueryAsync <T>(query, param : paramObject, transaction : Transaction); return(record.FirstOrDefault()); }
/// <inherit/> public async Task <Guid> AddAsync(T entity) { if (entity == null) { throw new ArgumentNullException(nameof(T)); } var paramObject = new ExpandoObject(); foreach (var property in QueryBuilderHelper.GetPropertiesWithAttribute <T>(typeof(DapperInsertAttribute))) { paramObject.TryAdd(property.Name, property.GetValue(entity)); } return(await Connection.ExecuteScalarAsync <Guid>(QueryBuilderHelper.GetInsertQuery <T>(), paramObject, Transaction)); }