I'm looking for a list of all the features you would have implement in a custom object relational mapper (ORM) to meet all the features of NHibernate.
to start:
- database portability through different drivers and dialects
- caching
- lazy loading
- custom SQL
- query interface - LINQ, Criteria, QBE (Query By Example)
- basic and advanced mapping functionality (ex. discriminator columns, examples)
- support for transactions and unit of work
- Multi-Criteria
- Multi-Query
- Batching
- Hooks to supplement/override functionality
<Insert yours Here>
See another list here: 25 Reasons Not To Write Your Own Object Relational Mapper from Ayende Rahien