Friday, August 04, 2006

ObjectDataSource - gewusst wie.

Wer das erste Mal vom ObjectDataSource Objekt liesst, welches mit .NET 2.0 zur Welt kam, wird begeistert sein. Nach den ersten Gehversuchen könnte dies jedoch anders sein.

Wer mit dem ObjectDataSource arbeitet, kriegt von Microsoft einige Features gratis dazu. Speziell wenn die Source an ein DataView etc. gebunden wird.

Die ObjectDataSource hat aber auch Ansprüche, die es zu beachten gilt. So zum Beispiel muss die Klasse, welche die Daten liefert und die Select, Update, Insert und Delete Methoden zur Verfügung stellt, einen Default Konstruktor haben.

Weitere Probleme entstehen, wenn man die ObjectDataSource an einen generierten TableAdapter bindet und die darunterliegende Tabelle Nullable Felder hat. Der TableAdapter kann und will das auch, mit dem neuen generischen Typ Nullable arbeiten. Beim Generieren der Queries (Update) auf dem Adapter, werden somit auch die entsprechenden Parameter verwendet. Die ObjectDataSource kennt diese jedoch nicht. Das heisst, die Parameter Kollektion der beiden Objekte wird nicht übereinstimmen und beim Update wird eine Exception geworfen.

Wird die ObjectDataSource jedoch gemäss den Vorgaben eingesetzt und sind die darunterliegenden Klassen konform zu deren Ansprüche, hat man viel gewonnen.

Weitre Infos:
http://www.asp.net/QuickStart/aspnet/doc/ctrlref/data/objectdatasource.aspx
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.aspx

No comments: