We've been working in the background for a while now. Some of the features currently available in the CVS archive are many-to-many support as well as one-to-one support. We have also added support for Oracle and MySql 4.1 as Sisyphus Data Stores. Sisyphus Persistence Framework is an object persistence framework for .NET implemented in C#. Provides a simple way to persist objects that allows developers to hook in custom validation and business logic. Check out the code and kick the tires. Help us make Sisyphus better!
When creating Criteria classes, you can now specifiy a WHERE clause as well as a SELECT statement. If you specify a WHERE clause then the table is queried directly rather that using a SELECT ... IN.
The COM+ test code should now run successfully.
Now supports public properties as well as public fields.
Properties can be specified in interfaces and can be used in databinding.
By specifying an implementation of SpfIDGenerator a type can have the type of ID it desires. Examples are included showing a string ID being used for retrieval and updating and an SpfIDGenerator implemention that generates integer IDs.
You can now delete by ID, generate table create scripts, move items around in collections and some other stuff I can't quite remember :-)
Now you can retrieve datasets by writing ISpfQueryScript implementations.
Two such implementations are provided, one runs a piece of SQL and the other runs a stored procedure.
You can now specify a depth when retrieving entities.
For example, specifying zero will bring back only the top level entities. Specifying one would bring back the top level entities, any children but no grandchildren.
A Load() method has been added to the child collection so that it can be loaded when needed.
The latest release allows entities to have children, allows the default persister to be overrriden and allows a set of entities to be retrieved as a DataSet for easy binding.
The references to application icons have been removed and a new sample project has been added to the solution.
This project shows how the features of the framework can be used to create a WinForms timesheeting application.