Releases: danielgindi/SequelNet
Releases · danielgindi/SequelNet
More DateTime overrides for reader
- You can now ask for the
DateTime
with a specified Kind - In the
AbstractRecord
generator - you can specifyDATETIME_UTC
/DATETIME_LOCAL
for specific kinds
`Where` improvements
- More overrides for
Where
- Now you can chain
Where
to automatically generate aWhereList
- Support for
WhereList
as aSelect
value
Minor improvements, Moved to .NET 4.5.2
- Added
GetSafeOrdinal
as a version that does not throw an out of bounds - More
DateTimeAdd
overload - Added
GetBoolean(name)
overload - Moved to .NET 4.5.2, since .NET <= 4.5.1 is not supported by Microsoft anymore since 1/1/2016
- Updated MySql connector to to 6.9.9
- Updated MySql connector to to 6.9.9
- Updated Npgsql to 3.1.6
DataReaderBase major (non-breaking) transformation
- Remove redundant data readers, turned into one conforming to
IDataRecord
, andIEnumerable
- Added many more convenience functions to
DataReaderBase
- Added many column-name based convenience functions (to be used when performance does not matter, or you are reading only one row etc.)
Fixed ExecuteAggregate bug
- Bugfix: ExecuteAggregate should always only include the aggregate column
New features, refactoring, breaking changes
Breaking changes - all for the sake of clarity and more expressive code
- I wanted to do this one for a long time now: Fixed old typo in
WhereComparision
->WhereComparison
. (You can use replace all in your Entire Solution, with Match Case and Whole Word enabled) - Breaking change: Select does not clear select list automatically anymore. If you want to reuse a
Query
object and clear currentSelect
s, just useClearSelect()
Where(Where, clearWhereList)
was removed. UseAddWhere
AddWhere(...)
overloads are all starting with aWhereCondition
. If you used the old syntax, please just useAND(...)
, it's much clearer.- All
*Dirty*
methods inAbstratRecord
have been renamed to*Mutated*
. Relevant to the new AtomicUpdates feature - Removed extraneous argument from new
Join
overloads (introduces in 1.0.1)
New features
- More
AddWhere
overloads - Added
(Where)
constructors to most phrases (where relevant) - Added more convenience methods to
PhraseHelper
for all present Phrases UnionAll
is now subclassingUnion
IsMutatedProperty
in the DAL generator VSIX to allow observing mutations on complex column types.- Improved
SelectAll
methods (not requiring a connection now) - General refactoring and structuring of the code
Improvements to Phrases
- Added more overloads to many of the quantitative phrases
- Added more phrases to the
PhraseHelper
Where
can now be used as a value, in phrases, OrderBy, and GroupBy
New helpers, MD5, and some cleanup
- New
MD5
phrase, underdg.Sql.Phrases.Encoding
- Changed many function argument names to lowerCase for CLS compliance.
- Exposed Phrase private members for public usage
- Added a
CreateIndex
helper that accepts an index'es name - and looks for theIndex
object by itself - Old
Join
overloads which do not AcceptJoinColumnPair
s are marked asObsolete
- New Join overloads for
InnerJoin(...)
,LeftJoin(...)
,RightJoin(...)
etc. TableSchema.SchemaName
renamed toTableSchema.Name
. Old property still works.AbstractRecord.TableSchema
renamed toAbstractRecord.Schema
. Old property still works.- New
SchemaName
property inAbstractRecord
for convenience. Points at Schema.Name - New
ExecuteCollection(...)
helper inQuery
, to return anAbstractRecordList
of a type - New constructor overloads for common Phrases
- New
PhraseHelper
class with static constructors of common Phrases - Breaking change: In the VSIX DAL class generator, both
FetchByID
andDelete
functions are now generated with theconnection
argument at the end. This is to keep consistency with the way it works in other functions across the library, and to allow a default value of null.
Quick tip:
If you want to migrate all old Join syntaxes to the new one, you can use a replace like this:
"Replace in Files", "Entire Solution", mark the "Regular Expression" box.
Find: \.Join\(([^,]+),\s*([^,]+\.(?:TableSchema|Schema)),\s*([^,]+),\s*([^,]+\.SchemaName|"[^"]+"),\s*([^,]+\.(?:TableSchema|Schema)),\s*([^,]+),\s*([^,]+\.SchemaName|"[^"]+")\)
Replace With: .Join($1, $5, $7, new JoinColumnPair($2, $3, $6))
Minor bugfixes
- The column overload in PassThroughAggregate was faulty
Support for HAVING clause
1.0.0.50 1.0.0.50