The Code Base of the ObjectMapper .NET has now been changed to GIT.
It’s time to release a small patch that fixes two bugs regarding Projection and Grouping SQLs.
The first is a bug that appeared when trying to create a SQL statement that has conditions that are placed in a WHERE Clause and conditions that resists within the HAVING Clause. In the old version it was not possible to create such statements. After the current patch it’s possible.
In order to use conditions within the WHERE and within the HAVING Clause, the ICondition owns a property named "ConditionClause". This property can be used to specify wheather a condition is placed into the WHERE or the HAVING Clause. A ConditionList ( and that is new ) is defined as "Undefined" which means, that it can have childs that are placed in the WHERE or in the HAVING Clause. Using this trick allows you to pass the Select Method of the ObjectMapper .NET a ConditionList with child conditions that are set into the WHERE or in the HAVING Clause.... read more
This release covers a lot of smaller and bigger bug fixes for the Microsoft SQL Server 2000 and 2005.
Some Statements could not be executed for the Microsoft SQL Server 2000 by the SqlFile class, because the SQLs that have been executed all ends with a semicolon. Microsoft SQL Server 2005 doesn't care about, but Microsoft SQL Server 2000 ends up with a failure. This bug has been fixed by removing the semicolon at the end for all databases but Oracle.... read more
This Release is a pure bug fixing Realease. It covers three major bug fixes.
At first, it fixes a memory leak that occures when calling the Method "BaseCache.ClearAllCaches". Because this is not obvious for all users, I have to explain that this method has been called every time the ObjectMapper class has been initialized with a version information greater than zero.
The second fix is a multithreading bug that causes the mapper to throw unmotivated Exceptions, like "NoPrimaryKeyFound" Exception and "CollectionHasBeenModified" Exception. But this only occured when using the ObjectMapper .NET in a strongly multithreaded environment.... read more
Today, the AdFactum ObjectMapper .NET reaches the next evolution level - hmm - I mean: the next release. But without joking, it's a big step to a full integrated LINQ support and a big step further to complete the base functionality of the AdFactum ObjectMapper .NET.
First I implemented the base aggregation functions like Min, Max, First, Last, Sum and Count and grouping functionality with using the GroupBy Clause. This functionality can be used with projection classes or directly using the new Linq Syntax. The only thing that is still missing, is the Having Clause which caused me a lot of headache. But I'm confident that I can implement that feature in the next release.... read more
This release covers two bug fixes. The first one fixes a bug within the projection query engine, which prevents selecting a projection multiple times due to a null pointer exception that has been thrown by the ObjectMapper .NET. The second one fixes the short name generation in the repository part of the ObjectMapper .NET.
I think that is the last bug fix release before the next bigger release introduces many enhancements to the AdFactum ObjectMapper .NET.... read more
This version contains two new changes.
The first is included because of the backward compatibility to earlier versions where the AdFactum ObjectMapper .NET did only support GUID types as Primary Keys. To satisfy our customers which upgraded to the new version the last days, I included a backward compatibility modus. The rule: If no primary key is defined within an interface, assume that the primary key must be a GUID. ... read more
Today I present the first release of the AdFactum ObjectMapper .NET within the new year. So what does it cover? This release is one of the big one and covers a lot of minor changes and one or two bigger issues.
First of all I added a new persister especially for the old Sql Server 2000 version, which does not support the analysis functions used by the paging algorithm. As another big new feature, I added a "DeleteRecursive" method which allows to delete object trees by using a given hierarchy level. ... read more
This version covers one new query condition, with that you can use the Sql "with clause" sub query replacement. That feature gives you a powerful optimization feature, if you have many sub selects (SubSelect) within your sql query. In best case, these sub selects can be reduced to one, when using the "with clause" feature.
I wish you lot of fun with the new version.
Today I’m proud to release version 2.0 of the AdFactum ObjectMapper .NET. This major release covers new key features like a first LINQ implementation, new projection classes and several bug fixes regarding the XML persister.
First of all, the ObjectMapper .NET does now understand the basic LINQ syntax. Please keep in mind that this is a first implementation and that it does not cover the complete functionality of LINQ. But it’s a first step. Be sure that the next release of the ObjectMapper .NET will cover a lot more LINQ features than it does today.... read more
The new release of the AdFactum ObjectMapper .NET covers several enhancements that have been discussed in other thread within this blog.
First of all the OBM (ObjectMapper .NET Manager Class) has been included in the current release. That means that you don’t have to implement multi threading functionality by your own. You can simple use the OBM helper class. The original idea of the OBM has been explained in Tutorial 4. The only difference is, that the signature of the Method CreateMapper has been changed.... read more
It’s time again to present a new release. As suggested in trouble ticket https://sourceforge.net/tracker/index.php?func=detail&aid=1744670&group_id=156554&atid=800253 the AdFactum ObjectMapper .NET does now support the attribute [DefaultValue] to create DDL scripts that includes the specified default value.
As a second thing, a bug within the repository has been fixed. It occured when trying write the repository. If a table name with two or less characters exists, the AdFactum ObjectMapper .NET ended with an exception.... read more
Today I'm proud to present the next version of the AdFactum ObjectMapper .NET. This release covers one primary feature. The AdFactum ObjectMapper .NET is now able to handle primary keys other than GUIDs. That means it can handle autoincremented ident numbers for Oracle, Microsoft SQL Server and Microsoft Access. Therefore two new base classes have been established.
This base class offers an autoincremented ident number as the primary key for every table. When using Oracle, all necessary sequences and triggers will be generated automatically.... read more
The new version of the AdFactum ObjectMapper .NET covers two bugs and one enhancement.
First of all, the Microsoft SQL Server Compact Edition (CE) can now be used with Desktop Applications. Therefore the SqlCEPersister has been added to ObjectMapper .NET solution.
Regarding this functionality I fixed two bugs that have been announced in SourceForge. The first bug (a critical one) prevented storing objects that had duplicated values and property types. The second bug produced a wrong update DDL Script when using the [GeneralLink] attribute on aggregated properties. This bug not only appeared when using SqlCEPersister. ... read more
Today I’m proud to present the new major release of the AdFactum ObjectMapper .NET. This release includes two new features and one major attribute change.
As a new feature I extended the join condition in order to enable joining objects with objects, types with objects and types with types. Thus reduces the amount of conditions that are necessary to limit the database query.
Imagine we have a structure like that:... read more
This release is a hot fix for the last version which had a small bug. In some special cases the ObjectMapper .NET wasn’t been able to deep load the object.
There had been a some dependencies to get the bug, but it wasn’t impossible
- You’re working with General Links.
- You’re working with GetNestedObject and/or GetNestedCollection
- And you’re working with FlatSelect and than Select to load an object with full hierarchy. ... read more
Today I’m proud to present you the new release of the AdFactum ObjectMapper .NET.
This release has the most changes in method GetNestedObject and GetNestedCollection. Both methods can now handle nested objects or collections that have been tagged with the [GeneralLink] attribute. As a consequence of that change the GetNestedCollection method does not need the child type parameter any more. Which might result in code changes within your application.... read more
Due to the amount of changes within the current version it’s time to increase the release number to 1.50.
First of all the AdFactum ObjectMapper .NET can now handle database functions on properties. Thus enables you to execute database functions when a new object will be inserted, updated or selected. I originally implemented the database function support to read an Oracle sequence number when a new object will be inserted. But it can also be used to set the creation date automatically.... read more
the new release of the ObjectMapper .NET fixes primarily one big bug that occured when searching for empty Guids. Which leads the ObjectMapper .NET to a null reference exception. That bug has been fixed now.
Additionally I changed the sql tracing parameter from a plain string the the interface IDbCommand. That enables you to log parameter values as well as the plain sql string.
So have fun with the new version... read more
This is a minor bug fix release for the connect method of the SqlPersister class. The connect method did not handle the password parameter in all cases and therefore the user could not always connect to the Sql Server.
That’s fixed now. I wish you a successfull new year 2007.
The new Release covers a new special feature called Nullable Types in Visual Studio .NET. Using Nullable Types allows you to assign NULL to value types like integer or Guids. That’s very useful when using Databases, because Value Types never existed in that paradigm.
How to declare Nullable Types? That’s pretty simple. Only put a question mark after the value type you want to make nullable.
private int? nullInt = null;
private DateTime? nullTime = null;
private Guid? nullGuid = null; ... read more
Today I updated the minor release version because of a critical bug I fixed. The bug always occurs when trying to store MarkedValueObjects with dependent objects and the hierarchy level FlatObjectWithLinks.
Ok - this sounds unique, but it’s quite a common scenario. Think of a distribution class that owns a list of contacts. You modify the distribution class and save it with hierarchy level FlatObjectWithLinks. In that case the Commit will throw an exception and you have to rollback the transaction. So that bug has been fixed.... read more
This release is a small bug fix for a failure that occures when storing business entities that own multiple links to the same object. The problem was that not all of the link properties have been stored. So this problem has been fixed within this version.
Furthermore I changed a small design issue in the class "Property". The problem was that the property "Name" hide the base property "Name" which normally retrieves the name of the property. Instead of the property name our implementation returned the column name, which leads to some problems if external applications rely on that information. Because of this we changed the name of our property implementation to "ColumnName".... read more
Yes - it’s only one day after the last release, but it’s time to release a new version of the ObjectMapper .NET.
The reason are two bugs that occured the last days. The first was a problem regarding the binding of IList collections that leads to a problem when trying to create the DDL file. The other problem was a duplicate key violation when trying to store a tree structure to database.
Both problems have been corrected. As an result of these two bugs, I added the first NUnit tests to the ObjectMapper .NET 2005 project. In further releases this regression tests will be extended in order to get a higher code quality.... read more
In this release I fixed a bug that occured when working with BackLinks which have a global join parameter. In some cases the SQL statement for such queries failed because the ObjectMapper .NET missed to add a join constraint.
Furthermore I derived the class AdFactum.Data.Internal.Property from the PropertyDescriptor. This change allows you to access the attributes of a property (e.g. IsRequired, IsUnique etc) and the implementation of the getter / setter delegate (mentioned in the last release note) in order to work with them within your application.... read more