I would recommend Entity Framework v4. It has improved beyond dramatically since v1, and supports everything you require except being open source:
- EF supports a very wide variety of mappings, including TPH, TPT, and TPC. Supports POCO mapping, allowing you to keep your persistence logic separate from your domain.
- EF has extensive and excellent support for LINQ, providing easy to use, compile-time checked querying of your model. EF Futures components such as Code-Only simplify working with EF even more, providing a pure code, compile-time checked, fluent API for defining your model. By opting for convention over configuration, Code-Only can radically reduce your model design time, allowing you to get down to business without all the hassle of tinkering with a visual model and multiple XML mapping files.
- It is free as part of .NET 4. (Sorry, Open Source preference can't be met here.)
- EF provides an excellent N-Tier solution OOB via self-tracking entities
- Self-tracking information uses an open xml format to transfer tracking data, so tracking support could be added to non-.NET platforms
- Performance of EF v4 is very good, as extensive work was done on the query generator
- See the ADO.NET Blog entry on the subject
- EF provides extremely rich visual design tools, and allows extensive customization of code generation via custom T4 templates and workflows
- EF v4 introduced numerous interfaces, including the IObjectSet and IDbSet interfaces, which greatly improve the unit testability of your custom contexts
- EF v4 is an integral part of .NET 4 and a central component of all of Microsofts current and future data initiatives. As a part of .NET, its documentation is quite extensive: MSDN, EFDesign Blog, ADO.NET Blog, dozens of .NET and Programming sites and blogs provide a tremendous amount of documentation and support for the platform.