EntitySpaces 2007 Release v0.0528.0 Release Notes
IMPORTANT:
You may install this Release right over the top of EntitySpaces Beta 2007.0.0415 or later. You need to regenerate your generated classes using the "Generated Master" template.
IMPORTANT notes for upgrading from EntitySpaces Beta 2007.0.0328 or earlier (including updating from EntitySpaces 1.5.3):
- Uninstall your current version of EntitySpaces and, if possible, completely delete the left over files in your EntitySpaces folder. The installation locations of the Compact Framework files have changed, and could lead to confusion, if there are left over files.
- Do not install side-by-side with other EntitySpaces releases.
- Regenerate your generated classes using the "Generated Master" template.
- Assign a Loader in your application. See "Registering the Loader" in the "Getting Started" PDF that is added to your EntitySpaces Start Menu folder.
- A few methods have moved under the nested .es variable. IsDirty, for instance, is now .es.IsDirty. These will generate compile time errors, and should be easy to spot and fix.
New Installs: The latest MyGeneration (1.2.0.7 or higher) should be installed first, and then closed, before installing EntitySpaces Developer or Trial. You can download MyGeneration 1.2.0.7 HERE. EntitySpaces 2007 is a full install. You do not need an earlier version installed. To generate against MySQL, MyGeneration requires that MySql.Data.dll be copied to the MyGeneration Program Folder. After installing, please see the "Getting Started" PDF that is added to your EntitySpaces Start Menu folder.
Below are the accumulated release notes since EntitySpaces 1.5.3:
Enhancements and fixes new this release (2007.0.0528.0)
- SubString sub-operator is overloaded to accept length only. Start position defaults to 1.
- GetColumn("alias") fixed for entities when multi-provider mode is true and with aliased aggregates in the Select clause.
- GetColumn("alias") fixed for views with aliased aggregates in the Select clause.
2007.0.0521.2
- Added an alternate way to assign the connection string. Below is an example of the standard way connection strings are stored in config files.
Now EntitySpaces can take advantage of pre-existing connection strings like so:
When the prefix "AppSettings:" is used EntitySpaces knows to pull the connection with the name that follows the AppSettings: from the standard section. This can also be used in configless setups, however, this feature is not available in our CE assemblies.
- Fixed bug with AttachEntity / DetachEntity when binding as it was sending the OnListChanged notification too early.
- The As() syntax is fixed for Query.Select()
- LoadManyToMany fix for SQL Server (schema usage)
- Made the esDataSource esException logic consistant, a follow up blog will be posted on this.
2007.0.0521.1
- Strongly typed implementation for indexing into the collections (no cast required). The indexer is read-only.
- VB.NET array types such as Byte() - fixed
- AddNew() when a filter is applied to a collection bug - fixed.
- Multiline descriptions on views bug - fixed
- SetProperty() bug - fixed
2007.0.0521.0
- esEntityCollection.SaveAndDiscard() was added. This is a new method that can be useful for importing data. It does not bring back identity columns, timestamps, or other computed columns and it does not save hierarchical data.
- esEntityCollection.Combine is available now, it can combine two collections, however, it is destructive in that the one passed in is no longer useable after the call.
- A binding error in Windows.Forms was fixed regarding AddNew(). In fact, you should notice binding working alot better AttachEntity/DetachEntity/AddNew should all send the proper events.
- Concurrency checks our now done when Deleting for both Microsoft SQL and VistaDB.
- OnPropertyChanged was added to the generated entity class that will allow you to call it to indicate that custom properties have been modified.
- Table names and column names with dots or "." in them are now handled correctly, you will need MyGeneration 1.2.0.7 for this however, see the above mention of this.
- There was a bug surrounding the Micorosft SQL column default newid() which was fixed. Sometimes it was not being recognized properly.
- Implemented ICollection.SyncRoot for XAML / WPF binding
- Implemented ICollection.CopyTo to make comboboxes work in CE
2007.0.0507.0
- It is no longer necessary to call AddNew() on esEntity based objects, however, it causes no harm to do so.
- Fixed the ASP.NET binding error in v0430.
- Fixed the under_score issue.
- Exposed the IMetadata interfaces on the nested "es" variable. Now you can do this:
- Made the following work with columns containing underscores:
- Fixed Oracle Paging with SELECT *
- This bug, involving the metadata maps has been fixed:
- Fixed a bug in the String (str) Properties when being set to Null.
- Fixed a bug in the SetProperties method of the esEntity type class when the value was null.
2007.0.0430.1
- There is now a Getting Started PDF installed during installation. See the EntitySpaces menu on your Windows system after installation.
- The esDataSource control for ASP.NET supports AutoPaging and AutoSorting, the details can be found in this BLOG post. Also many other issues have been fixed.
NOTE: Our testing showed the DevExpress grid does not properly fill in these properties. The Windows controls and the Telerik controls do.
DataSourceSelectArguments.MaximumRows
DataSourceSelectArguments.StartRowIndex
This means that DevExpress users will need to implement manual paging.
- The esDynamicQuery "IN" clause has been supercharged.
- INotifyPropertyChanged is now supported. There is a new checkbox for this on the Advanced Tab of the "Generated Master" template.
- esEntityCollection.DeleteAll has been obsoleted, instead now use esEntityCollection.MarkAllAsDeleted
2007.0.0415.0
- Option during install to register the EntitySpaces assemblies in the Visual Studio References dialog. This is checked by default and adds some entries to the Windows Registry.
- Medium Trust Support - See BLOG post. You will have to add this code to your application:
- Support for SQL CE via our EntitySpaces.SqlClientProvider.Ce assembly.
- Sql Ce requires MyGeneration 1.2.0.6 or later to correctly generate the EntitySpaces templates.
- For Sql Ce be sure to check both "Ignore Schema" and "Ignore Catalog" on the Advanced Tab of the Generated Master template.
- You might need to copy the System.Data.SqlServerCe.dll into your MyGeneration folder.
- Sql Ce returns database defined default values for ALL columns that are NULL during Save, no matter what the column type is.
- For some further info on SQL CE see the SqlClientProvider.Ce Forum.
- Potentially breaking change: These methods have been moved from the esEntity class to the IEntity interface. If you have used them, they will now get compile errors, but these are easily fixed by adding '.es'. They have not changed functionally, it is just a relocation of the methods. They now have to be accessed as follows:
- Added three new methods to esEntity - IsModified, IsAdded, and IsDeleted
- Fixed issue with ModifiedColumns not being cleared after a call to Save.
- Fixed issue with underscores in column names when binding.
- Implemented workaround in esTransactionScope to get around a bug in the .NET SqlTransaction class in that it only maintains a weak reference to the SqlConnection class.
- Fixed esTransactionScopeOption.Suppress.
- Added two new methods to the esColumnMetadataCollection class
- Added paging support to the Dynamic Query API, an example can be seen on the BLOG post. This is only supported on SQL Server 2005 and MySQL as those databases have built in paging support. Oracle paging will be available in the next beta. The paging will be further unit tested upon the next beta. The two new properties are: You must have an OrderBy in your query to use paging.
2007.0.0328.0
- Potentially Breaking Change: There is some understandable confusion as to what EntitySpaces considers up and down in the hierarchical tree. This is important because EntitySpaces does not Save upstream. It automates filling in identity keys on a BusinessObject and Saves downstream to all Children with foreign key columns filled in. The "Set Plugin Settings" template has a new checkbox for adding an "UpTo" prefix to all upstream relational names. This checkbox is checked by default. If you are already comfortable with the current naming scheme, have modified it to suit your needs, or simply do not want to go through and fix the compiler errors for the renamed methods, follow these instructions before re-generating.
- Open the "Set Plugin Settings" template.
- Click "Read All Current Settings".
- Go to the hierarchical tab.
- Un-check the box, "Prefix Parent names with 'UpTo'".
- Click OK.
These rules should help you remember upstream/downstream (Parent/Child):
- All collections are downstream except ManyToMany.
- All entities are upstream except OneToOne.
- The OneToOne table with the foreign key constraint on it is downstream.
- All OneToOne tables with identity keys are upstream.
- Updated VistaDB provider to work with VistaDB 3.0 version 3.20.1.20.
- Added concurrency support for VistaDB timestamp columns.
- Added full support for SqlCe provider.
- Added an option to have generated classes inherit from custom base classes. There is an optional CheckBox on the Generated Master template (Advanced Options tab) that changes the inheritance structure for the entity, collection, and query classes. C# and VB ProForma CustomBase classes are included in the install and need to be copied and added to your project. They are not generated and are only installed into the EntitySpaces Program Folder.
- Employees -> esEmployees -> EntityBase -> esEntity
- EmployeesCollection -> esEmployeesCollection -> CollectionBase -> esEntityCollection
- EmployeesQuery -> esEmployeesQuery -> QueryBase -> esDynamicQuery
These classes let you add custom code that will apply to all entities, collections, or queries. This is in contrast to the esUtility class that lets you add custom code that does not apply to any specific entity, collection, or query, but where you want to take advantage of the EntitySpaces special functions like ExecuteNonQuery.
- Added methods to expose CommitChanges and RejectChanges operations on collections.
- Corrected issue when using FindByPrimaryKey or FindByIndex on an empty collection.
- Rebuilt Sandcastle help files. They now include an index.
- Corrected issue with prefixing of Special Functions with "p" in StoredProcedure mode for Oracle. Oracle users are no longer required to use our naming convention for Oracle parameters.
- Added MySQL support to the EntitySpacesDemo application. You will need a port of Northwind to try it. The EntitySpacesDemo can run against Northwind for SQL Server, Access, VistaDB, MySQL, or all four if you have them. Just make sure the connection strings in App.config point to your database(s). The provider can be selected at runtime from the Tools -> Connection menu. You can even switch between them and see the different SQL syntax by clicking the LastQuery button for any example that uses DynamicQuery.
- Added a Date SubOperator. It is not supported in Oracle, yet. This method sets the time portion of the DateTime to 00:00:00. This is convenient in a Select or Where clause when only the date portion is significant.
- Added a Coalesce SubOperator. Access does not support Coalesce. This particular example will substitute the word 'Unknown' for any LastName that is null.
2007.0.0318.0
- ASP.NET Design Time Databinding support through esDataSource - See this Blog post and this Forum post.
- Added foreign key name to generated XML comments for hierarchical methods.
- Fixed issue where foreign keys where not applied for auto-incrementing primary keys when saving a collection.
- Separated Ignore Schema and Catalog checkboxes in the Generated Master template UI. This will require that projects that use this template will need to be edited.
2007.0.0304.0
- esTransactionScope enhancements - See Blog post.
- Dynamic Query API enhancements - See Blog post.
- Better error reporting
- New esUtility class. Note, these methods are all available in your Custom classes as protected methods, however, this class was added for those operations that do not seem to fit well within your generated classes.
- The MySql Providers now uses version 5.0.3.0 of MySQL Connector/NET
- EntitySpaces used on the client side of a web service no longer needs to declare a connection.
- Added more VB examples to the EntitySpaces API documentation.
- Corrected missing lock in esProviderSpecificMetadata for webservice usage.
- Added ability to call Save on a Collection with no data.
- By default EntitySpaces PascalCases Table and Column names. New to this version, it will honor the characters in the TrimList. The default TrimList is " .-" (space, dot, dash). The TrimList may be changed by running the Set esPlugin Settings template, clicking Read All Current Settings, changing the TrimList setting, and clicking OK to save the changes. PascalCasing still removes underscores, whether they are in the TrimList or not. If you must leave underscores in the name, check Use Raw Names (Not recommended). This will only remove the characters in the TrimList and do no other casing. If you only need to override a few names from the defaults, the best bet is to do this by changing the Alias in MyGeneration User Meta Data. The Alias will supersede both the default PascalCasing and UseRawNames. Only the TrimList is used to remove illegal characters.
- Remove Webservices need for config info on client side
- FillDataSet,FillDataTable, etc. return output parameters correctly.
- Corrected issue in hierarchical logic where One to One parent and child relations were reversed.
- EntitySpaces templates use to cache the template UI, such that, when running the same template again, it remembered the previous settings; Namespace, tables selected, etc. It was discovered that this feature was interfering with the ability to edit projects in MyGeneration that called on the EntitySpaces templates. For the time being, the caching has been removed from the EntitySpaces templates.
|
|