Thanks for your comments.
Serialization support will improve a lot in version 0.7, which should
be out by the end of this week. We also will be adding a section to
the online tutorial on serialization.
Regarding identifying which property of your class should be treated
as the id, version 0.7 will let you do any of the following:
1. Use the [BsonId] attribute to mark a field/property as the Id for
the object
2. Use the MapIdField or MapIdProperty methods to map a field/property
as the Id if you prefer to configure serialization in code instead of
using attributes
3. Let AutoMap find the Id, possibly registering your own
implementation of IIdMemberConvention if the default one doesn't find
your Id correctly
You won't have to name your Id property "_id"! :-)
To set your mind at ease about using attributes to decorate your
properties, it's not required. If you prefer to have persistence
ignorance in your POCOs that's fine. You'll just have to configure
your serialization another way, either manually configuring your class
maps in code, or registering custom conventions to guide AutoMap to do
the right thing. If you're lucky the standard AutoMap behavior will
work for you out of the box.
Glad you're having a good experience, and it's great to get feedback
like this. It definitely helps us make the driver better.