Change log

Buy now
download now

LightSpeed 3.0 change log

Released: 14th December 2009
  • Additions
    - Join, group, union and intersect support
    - Subquery support
    - Migrations framework, migrations runner and migrations generator
    - Composite keys
    - Multipart order-by clauses on supported databases
    - Order by field of a value object
    - ASP.NET medium trust support
    - Mono support
    - CRUD procedures
    - Option to override default command timeout
    - Expose LightSpeed model via ADO.NET Data Services
    - Identity method for sequence per entity type
    - Per-property change tracking
    - Support for ASP.NET Dynamic Data automatic client-side validation (DataAnnotations)
    - Option to not null out child foreign key references on save (and throw exception instead)
    - Option to validate a URI as a relative URI, and to permit empty URIs
    - Option to include soft-deleted items in unique validations
    - Option for empty strings to count as present in presence validation
    - Query syntax for a subselect to join back to the root table of the original query
    - Extensibility hook for customising how a unit of work uses database connections
    - FindBySql method to load entities from a custom command
    - Fake object support classes
    - SQL Server 2008 provider
    - SQL Server 2000 provider
    - IBM DB2 provider
    - VistaDB 4 provider
    - SimpleDB Count support
    - SimpleDB paging support
    - Custom URL and signature options in SimpleDB provider, for use with M/DB and Amazon’s European endpoint
    - Detect changed nullability in schema round-tripping
    - Designer support for through associations
    - Designer commands to move properties to a base or derived class
    - Designer updates views when using Update From Source
    - Designer schema round-tripping for inheritance hierarchies
    - Designer schema round-tripping for value objects
    - Option to use UTC or custom timestamp for CreatedOn, UpdatedOn and DeletedOn
    - Refactoring in designer
    - XML documentation comments in designer
    - Option to log SQL applied during designer Update Database
    - Enabled cut, copy and paste of entity properties in designer
    - Designer support for mapping the foreign key column in one-to-one associations
    - Designer support for single-pass creation of multiple tables
    - Designer support for PostgreSQL drag and drop (with custom DDEX provider)
    - Filtered views in designer
    - Import namespaces into designer generated code
    - Surface email validation “is required” flag in designer
    - Override database type mapping in designer
    - Option to remove Hungarian prefixes on table and column names when dragging onto designer
    - Designer enum support
    - Designer support for named aggregates on one-to-one associations
    - Copy designer image as bitmap
    - Import LINQ to SQL model
    - Extensibility model for designer metadata
    - Zoom menu on designer
    - Designer support for customising value object column name prefix
    - User-defined mappings of CLR methods in LINQ queries to SQL functions
    - LINQ support for Equals method
    - LINQ querying over entity collections
    - LINQ support for “is” operator
    - Nullable type support in LINQ
    - Aggregate operators in LINQ “where” clause
    - LINQ support for join, group by, intersect and union
  • Changes
    - Generated DTO classes derive from common base class
    - Main LightSpeed assembly now depends on .NET 3.5 SP1
    - Use Select instead of Query when querying SimpleDB
    - Search with IdentifiersOnly does not load entities
    - lsgen.exe no longer generates associations to excluded entities
    - Call OnSaving for entities that are being deleted
    - Updated database providers to more recent versions
    - Automatically uninstall existing LightSpeed installation when upgrading
    - Emit DataObjectAttribute onto designer generated entities
    - Save DateTime values with millisecond precision in SimpleDB
    - Performance optimisations for stored procedures with large result sets
    - Configuration settings are not case-sensitive
    - lsgen.exe disambiguates relationships with the same name
    - Save only changed fields when using optimistic concurrency checking
    - Provide access to associated entity when reporting association validation errors
    - Allow empty prefix for value object columns
    - Support for 0 as identity value
    - Accept empty string during email validation when not required
    - Renamed FindOne(object) overload to FindById
    - Columns in ASP.NET Dynamic Data are sortable
    - Performance improvements for identity column inserts
    - Designer generates timestamp on PostgreSQL instead of date for DateTime properties
    - Licensing restrictions on entity count applies to designer
  • Bug fixes
    - Fix for incorrect removal after adding multiple through associations
    - Fixed nullable type handling on SimpleDB
    - Removed restriction on minimum DateTime in SimpleDB
    - Fixed issue with nullable properties in ASP.NET Dynamic Data
    - Fix for scalar LINQ operators intermittently returning incorrect values in multithreaded environment
    - Logging issue with stored procedure return values
    - Fixed issues with nullable and GUID foreign keys in ASP.NET Dynamic Data
    - Type model loading is now more robust in multithreaded environments
    - Fix for reuse of transactions on disposed connections
    - Resolve custom designer template path relative to project directory not Visual Studio directory
    - Set nullability of columns when creating a new table from the designer
    - Additional diagnostics for broken one-to-one associations
    - Fix for sequence identity generator creating duplicate IDs
    - Fix for child collections being out of order when main query included paging
    - Eager load associations when querying through a view
    - Stored procedures not in the default schema can be dragged onto the designer
    - Fix for calling Oracle functions using ProcedureQuery
    - Fixed nullability of foreign key columns generated by designer
    - Removed requirement for fields to be nullable when adding columns to a table in designer
    - Do not apply database range restrictions to transient DateTime fields when validating
    - Removed requirement to explicitly compare boolean values to true or false in LINQ queries
    - Fix for passing null inputs to an Oracle stored procedure
    - Fixed bug with delimiters in SimpleDB
    - Fixed issue where designer tried to recreate existing Oracle tables when schema was explicitly specified
    - Call OnValidate only once for entities with associations
    - Fixed issue where nulling out a lazy entity holder did not detach or cascade deletes, or mark the entity as dirty
    - Fix for struct value objects accessing garbage memory
    - Apply TableAttribute when dragging a view onto the designer if required
    - Exclude IsValid from being offered as a filter in ASP.NET Dynamic Data
    - Fixed designer munging of backing field names with underscores
    - Fix for creating PostgreSQL boolean columns from designer
    - Fix for designer errors on databases with no native GUID type
    - lsgen.exe created bad length validations for varchar(max) columns
    - Allow use of entities in an “update by query”
    - Apply discriminators when eager loading an association to a derived class
    - Improved handling of unsigned integer types
    - Fixed issue with nullable string foreign keys
    - Allow string foreign key columns in ASP.NET Dynamic Data to be empty if nullable
    - Handle SQL Server attached MDF files in designer
    - Fix for enums and EntityState column in ASP.NET Dynamic Data Futures
    - Don’t save entities where only transient fields have changed
    - Designer support for Oracle timestamps, binary_float and binary_double
    - Fix for one-to-one associations in ASP.NET Dynamic Data
    - Fixed issue querying on a field of a value object when the entity had multiple value objects of the same type
    - Corrected nullability of UpdatedOn column when created by designer
    - Exception when using value object fields in complex query expression
    - Stack overflow in Visual Studio when model contained an inheritance cycle
    - Length in designer-created column when length validation was greater than database maximum column size
    - Fix for ASP.NET Dynamic Data leaking a unit of work instance on an update, insert or delete
    - Workaround for ASP.NET Dynamic Data leaking a unit of work instance when populating a filter drop-down
    - Type coercion fix for discriminators
    - Fix for WHERE clause not being emitted if a comparand was placed first in a LINQ query
    - Fix for designer allowing only one one-to-one association between any two types
    - Fixed incorrect eager load query when querying by ID on soft-delete entity
    - Fixed issue when using a literal value in a logical expression
    - Removing a New entity from a child collection would result in other entities added to that collection not being saved
    - Fixed incorrect SQL if a query combined two paths which diverged and reconverged
    - Fix for eager-loaded associations later being reloaded if the entity was already in the identity map when the eager-load occurred
    - Fixed handling of non-ANSI characters in designer custom attributes
    - Corrected type of foreign keys to derived types in one-to-one associations
    - Fixed issue where the designer could not alter the type of a SQL Server column with a default
    - Fixed issue with designer Update Database if the database did not support views

LightSpeed 2.2 change log

Relased: 3rd February 2009
  • Additions
    - Stored procedure support on SQL Server, Oracle, PostgreSQL (via functions) and MySQL
    - Stored procedure designer support on SQL Server and Oracle
    - Multiple views support on SQL Server, Oracle, MySQL, PostgreSQL and SQLite
    - View designer support on SQL Server, Oracle, MySQL, PostgreSQL and SQLite
    - Amazon SimpleDB support
    - ASP.NET Dynamic Data support
    - Designer support for declaring members as non-public and/or virtual
    - Designer support for excluding members from generation (custom implementation)
    - Designer support for custom CLR attributes on entities and members
    - Designer command to convert a one-to-many association to one-to-one
    - Designer support for entities inheriting from an external base class
    - Schema round-tripping for one-to-one associations
    - Entities can now be used as ASP.NET ObjectDataSources
    - Extensibility hook for entities to define their own ID generation strategy
    - Designer now recognises Oracle floating point type
    - Order by property of associated entity
    - Designer “get started” screen
    - Designer generates WCF data transfer objects
  • Changes
    - Less strict numeric type conversion
    - Raise PropertyChanged event when reverting changes using CancelEdit
    - Some improvements to error messages
    - Non-synchronisable entities in a model no longer prevent schema round-tripping of the rest of the model
    - Designer reports failure if user drags a table with no primary key
  • Bug fixes
    - Fixed bug with cascade delete for entities with both soft delete and locking
    - Fixed bug with cascade delete if a cascade involved 5 or more levels of children
    - Fixed bug if a unit of work continued to be used after a query-based Update or Remove
    - Designer now handles MySQL large BLOB types
    - Fix for SQL Server database names containing spaces
    - Fix for designer failing to delete foreign keys in SQL Server
    - Soft-deleted items no longer show up in eager-loaded collections
    - PostgreSQL designer support was not installed correctly
    - PerThreadUnitOfWorkScope
    - Custom validations in designer
    - Corrected field types for foreign keys to derived classes
    - Issue with property name inference if multiple properties referenced the same field
    - Fixed designer error when the primary key column was also a foreign key column
    - Search index rebuild now respects custom index content
    - Fix for ThroughAssociation.CopyTo causing a StackOverflowException

LightSpeed 2.1 change log

Released: 16th October 2008
  • Additions
    - Full-text search support
    - Support for SQL Server Compact, VistaDB and Firebird databases
    - String identity support
    - GUID identity support on databases with no native GUID type
    - GuidComb identity method (can improve insert performance)
    - Per-type cascade delete behaviour
    - Per-type identity methods
    - Ad hoc UPDATE queries
    - Transient entities
    - Limited SelectMany support in LINQ provider
    - Designer support for MySQL 5.1 RC
    - Designer support for eager-loading the many-to-one direction of an association
    - Designer support for special columns (CreatedOn, UpdatedOn, LockVersion, SoftDelete)
    - Designer support for concrete table inheritance
    - Designer supports custom templates
    - Designer generates field name constants for use in Entity.Attribute expressions
    - Designer option to generate internal classes
    - Added strip prefix options to command-line model generator
    - Added table include/exclude switches to command-line model generator
  • Changes
    - DiscriminatorAttribute now accepts entity attribute name as well as column name
    - Designer infers MySQL unsigned columns as unsigned data types
    - Designer reports error on invalid discriminator
    - Designer reports error on duplicate class names
    - Update to SQLite 1.0.58
  • Bug fixes
    - Performance and robustness improvements in designer
    - Designer infers MySQL tinyint as byte
    - Error when transient field was of generic type
    - Fixed bug using constants in a LINQ projection
    - Fixed collisions in identity map
    - Vista users no longer need to run installer from elevated prompt
    - UnitOfWork.Find(Query) ignores projections instead of failing
    - Fix for designer sometimes failing to detect that the Column Name property was required
    - Improved schema inference in designer
    - Designer support for connecting to Oracle database as non-owner
    - Designer infers association even if foreign key is not conventionally named
    - Improved SQL Server data type support in designer
    - Designer support for SQL Server “server=” connection strings
    - Improvements to MySQL schema round-tripping support
    - Fixed bug with using reserved words as table or column names in schema round-tripping
    - Fixed bug which prevented creating multiple foreign keys to the same table in SQL Server
    - Fixed bug with using schema round-tripping to change the type of a database column
    - Error in designer-generated code for one-to-one associations
    - Issue with GUID discriminators

LightSpeed 2.0 change log

Released: 3rd June 2008
  • Additions
    - Multiple concurrent LightSpeedContexts supported
    - LINQ provider
    - Visual model designer
    - Command line code generator
    - Int64 (long) now supported as identity type
    - SQL function support
    - SQL calculation / aggregation support
    - Value range validation
    - String length validation
    - Custom validation error messages
    - Value object inheritance
    - Schema support
    - DISTINCT support
    - Column-to-column comparisons
    - Multiple value members of the same type on a single entity
  • Changes
    - New API: Data manipulation methods moved from Repository to IUnitOfWork and removed Repository gateway class.
    - Throw exception when circular association detected
    - Improved property name inferencing
    - Value object column names must now be prefixed with the name of the value object field in the entity
    - LightSpeed configuration section supports multiple LightSpeedContexts
  • Bug fixes
    - Transient fields included in validation
    - Property name inference works for fields declared in abstract base classes
    - Bug in query optimiser when using != operator
    - Don’t cascade in-memory deletes for new entities
    - Fixed some bugs with reusing Query objects
    - Correctly handle collisions in hash codes of GUIDs
    - Fixed bug with lazy value objects


LightSpeed 1.2 change log

Released: 4 February 2008
  • Additions
    - Before/after load hooks
    - Configure table and column names using TableAttribute and ColumnAttribute
    - CreatedOn and UpdatedOn fields for client-side timestamping
    - EntityCollection can now be subclassed
    - One-to-one associations
    - Postgres, MySQL and SQLite now support auto-increment columns
    - Projection support
    - Property name inference
    - Value fields can be lazy loaded using named aggregates
    - Visual Studio debugger visualizer for queries
    - Localization sample
  • Changes
    - Entity validation properties are now Browsable(false)
    - Throw exception if reverse association missing
    - Lazy loaded associations are now tracked by IEditableObject implementation
    - Detached entities are now automatically re-attached in UnitOfWork.Remove
    - Many-to-one associations are now wired up from identity map or cache during object load
  • Bug fixes
    - Cascading delete issues
    - Reparenting issues
    - Bug in query optimizer


LightSpeed 1.1 change log

Released: 12 November 2007
Related story: LightSpeed 1.1 Released
  • Additions
    - Discriminator fields automatically initialized if possible
    - Discriminator fields can now be enums
    - Support for read-only fields
    - Dependent attribute for foreign keys
    - ReverseAssociationAttribute
    - OnValidating hook
    - Soft delete feature so that data is never deleted, only marked as deleted
    - Default ordering feature for classes and associations
    - Added a TraceLogger
    - Added ability to do polymorphic querying
    - Added IdentifiersOnly option to Query
    - Added support for nested units of work
    - Sample application showing how LightSpeed passes Mats challenge
    - Sample application built using Visual Basic
    - Sample application demonstrating the construction of an online store
  • Changes
    - Major performance improvements when querying/flushing
    - Validation now walks associations
    - ValidateUnique can now be scoped
    - Improved validation error message handling
    - EntityCollection now has set semantics
    - Upgraded installer to be several megabytes smaller
    - Many improvements to the samples
    - Extensive improvements to help documentation
  • Bug fixes
    - Inheritance mapping issue for complex inheritance scenarios
    - Tweak to allow LightSpeed to work better in Visual Basic projects
    - QuoteIdentifiers if passed from the configuration section is now applied correctly
    - QueryExpression values issue when using enums
    - Ordering of sql query execution when using complex relationships
    - Several fixes to the query optimizer for complex scenarios
    - Deletion cascade issue
    - Issue when using custom base class
    - Eager load, ordering subclass issue
    - Framework initialization issue
    - Issue with inheritance loading
    - Bug relating to UnitOfWork disposal and Transaction completion ordering
    - Index out of bounds exception on load
    - Edge case issue in query optimizer
    - Minor validation issue
    - Foreign key field updates now correctly updates associated EntityHolder
    - Corrected inheritance of some LightSpeed custom attributes
    - Deleting an entity now correctly updates the in-memory object graph