See Migrating to v6 for more information about the changes in v6.

v6.3.0 (planning)

  • Persistent complex properties
  • Debuggable binaries (SourceLink)
  • _ElseIf and _Else clause continuation methods


  • Added: WITH and FROM overloads that accept SqlSet as subQuery
  • Added: Treat SqlSet as subquery on SqlBuilder
  • Added #44: .NET Core 2.1 and .NET Standard 2.1 support
  • Added: Database CRUD shortcuts


  • Fixed: Contains and ContainsKey ignores current query


  • Added #52: CommandTimeout setting
  • Made Database.CreateCommand virtual
  • Added Contains and ContainsKey to SqlSet
  • Added #56: Support updates when using assigned keys


  • Fixed wrong exception on Database.Execute when affected number was lower


  • Added #48: SqlBuilder.CROSS_JOIN
  • Added #46: Support explicit DbParameter on CreateCommand
  • Fixed #37: Cannot use multipart identifier in Table annotation
  • Fixed #25: Setting container object when loading 1:n sometimes fails
  • Added #24: Allow eager loading n:1 and 1:1 when loading 1:n



  • Improved #30: Make SqlBuilder.cs a standalone file
  • Fixed #31: SqlTable not handling array members properly
  • Added #33: SqlServer 2008 support in SqlSet
  • Fixed #35: SqlSet pagination fails against Oracle
  • Moved documentation to source repository
  • Moved samples databases to source repository


  • Added #23: Support Select in SqlSet without specifying a result type
  • Added #17: Support for Enum properties that map to text columns
  • Added #15: SqlSet.Include function for query expansion (eager loading)
  • Added SqlSet.Find extension method
  • Fixed #18: Insert one-to-one associations (SqlTable.Add)
  • Improved #6: SqlBuilder.Append(SqlBuilder) and SqlBuilder.JoinSql generate unnecessary extra whitespace


  • Removed .NET 3.5 support
  • Removed members deprecated in v4.x
  • Removed DbConnection extension methods (use Database instead)
  • Removed XML mapping
  • Removed SqlSet constructors that take TextWriter (if you need profiling use Database)
  • Removed SqlSet.Union
  • Made all SqlSet’s protected members internal
  • Renamed SqlTable’s Delete, DeleteKey and DeleteRange to Remove, RemoveKey and RemoveRange
  • Removed Insert and InsertRange overloads with deep parameter, added DatabaseConfiguration.EnableInsertRecursion property to control recursion
  • Renamed SqlTable’s Insert and InsertRange to Add and AddRange



  • Improved SqlTable, using subqueries only when necessary
  • Added SQL.Param to workaround #10
  • Deprecated SQL.ctor


  • Implemented IDisposable on Database
  • Convention-based DbConnection.GetProviderFactory fallback
  • Removed AS keyword in FROM clause (to support Oracle)
  • Deprecated SqlTable.Initialize
  • SqlSet improvements:
    • Oracle support
    • Using subqueries only when necessary
    • Fixed #13: Skip().OrderBy() are applied in the same query instead of applying Skip() first
    • Deprecated DbConnection.Set and Database.Set, replaced by From
    • Can create set using table name only, e.g. From(“Products”)


  • Mapping to dynamic objects, Map methods which do not need a Type argument, also supported by SqlSet. This feature requires .NET 4+
  • New methods: SqlTable.ContainsKey, SqlCommandBuilder.UPDATE, SqlTable.DeleteRange, SqlTable.UpdateRange
  • Deprecated SqlTable.InsertDeep, replaced by Insert(object, bool)
  • Added SqlTable.InsertRange overloads with bool parameter
  • Deprecated Database.InsertRange
  • Deprecated SqlTable.DeleteById, replaced by DeleteKey


  • Fixed #4: SqlSet<T>.AsEnumerable() fails if T is a value type
  • Fixed #2: Use parameter on SqlBuilder OFFSET(int) and LIMIT(int)
  • Fixed #3: OleDbConnection and OdbcConnection do not override DbProviderFactory


  • Mapping to constructor arguments
  • Copied DbFactory methods to Database, marked DbFactory as obsolete
  • Fixed #1: Skip Refresh after Insert on non-entity types


  • New SqlSet API for making queries
  • DataAccessObject split into Database, DatabaseConfiguration and SqlTable
  • IDataRecord.Get{TypeName}(string) extension methods
  • MapXml methods now return XmlReader, and take XmlMappingSettings parameter
  • Unified extension methods class
© Max Toro Q.