Пример #1
0
        /// <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());
        }
Пример #2
0
        /// <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));
        }