Fluent NHibernate has a feature which gives you everything on your wish-list, except the auto-population part:
Link: http://wiki.fluentnhibernate.org/Persistence_specification_testing
However, given C# with code contracts, it wouldn't be to hard to auto-magically create valid objects yourself using reflection.