This topic Handling Null Database Values Using Data Source Controls has now been updated on MSDN to fix the sample based on various customer feedback. You can still see the old version here, in case you're curious to compare both versions.
What has changed:
Take a look and let us know if you think this has improved or if you still think it needs some work!
Soma, senior VP of the Developer Division, just announced on his blog that the Service Pack 1 for VS 2008 and .NET FX 3.5 are released!
That means that Dynamic Data is released and the documentation for Dynamic Data (and for the entire SP1) is now published on MSDN!
This is how the Table of Contents for Dynamic Data looks like for this release:
We introduced some new cool features with this release for the ASP.NET documents.
The runnable samples are nothing new for the ASP.NET team, but this is the first time we are publishing them outside the ASP.NET site. Some topics that include runnable samples are the following:
Well, now you can tell us what you think of the documentation and the new features. The easiest way to do it is just to send your feedback through the rating system on the MSDN site (the stars on the right-upper corner of the topic).
Enjoy it!
You've created a custom attribute to use in your Dynamic Data application that has the AllowMultiple property set to true. When you read the MetaColumn.Attributes property (if the attribute is applied to a data field) or you read the MetaTable.Attributes property (if the attribute is applied to a table), you don't see the multiple attributes of the same type in the list, only the first one is returned.
Why?
The TypeDescriptionProvider class internally constructs a collection of attributes and filters out identical attributes. It determines whether an attribute is identical or not by examining the TypeId property. By default, the TypeId property returns the type of the attribute. Since both attributes are of the same type, only the first one is retrieved and the remaining ones are considered identical.
To fix this problem, you need a way to distinguish each attribute instance. The easiest way to do that is to override the TypeId property in your custom attribute implementation and simply return the current instance, like the following:
public override object TypeId { get { return this; } }