public TEntity Insert(IStorageDbConnection conn, TEntity entityToInsert, IEnumerable <Expression <Func <TEntity, object> > > ignoredFields, AutoIncrementTransformer <TKey, TEntity> atf, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (entityToInsert == null) { throw new ArgumentNullException(nameof(entityToInsert)); } var result = ConstructInsertSql(entityToInsert, ignoredFields, atf != null); conn.TextWriter.WriteSql(result.CommandText); if (atf == null) { conn.Execute(result.CommandText, result.Parameters, tr); } else { var id = (TKey)Convert.ChangeType(conn.QuerySingle(typeof(TKey), result.CommandText, result.Parameters, tr), typeof(TKey), CultureInfo.InvariantCulture); atf(id, entityToInsert); } return(entityToInsert); }
public long Count(IStorageDbConnection conn, Expression <Func <TEntity, object> > member, WhereClauseResult whereClause, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var result = ConstructCountSql(member, whereClause); conn.TextWriter.WriteSql(result.CommandText); return((long)Convert.ChangeType(conn.QuerySingle(typeof(long), result.CommandText, result.Parameters, tr), typeof(long), CultureInfo.InvariantCulture)); }
public bool Exists(IStorageDbConnection conn, WhereClauseResult whereClause, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var result = ConstructExistsSql(whereClause); conn.TextWriter.WriteSql(result.CommandText); return((bool)Convert.ChangeType(conn.QuerySingle(typeof(int), result.CommandText, result.Parameters, tr), typeof(bool), CultureInfo.InvariantCulture)); }