contents
foreword
preface
acknowledgments
about this book
Part 1 Discovering ORM with NHibernate
- 1 Object/relational persistence in .NET
- 1.1 What is persistence?
- 1.2 Approaches to persistence in .NET
- 1.3 Why do we need NHibernate?
- 1.4 Object/relational mapping
- 1.5 Summary
- 2 Hello NHibernate!
- 2.1 “Hello World” with NHibernate
- 2.2 Understanding the architecture
- 2.3 Basic configuration
- 2.4 Advanced configuration settings
- 2.5 Summary
Part 2 NHibernate deep dive
- 3 Writing and mapping classes
- 3.1 The CaveatEmptor application
- 3.2 Implementing the domain model
- 3.3 Defining the mapping metadata
- 3.4 Basic property and class mappings
- 3.5 Understanding object identity
- 3.6 Fine-grained object models
- 3.7 Introducing associations
- 3.8 Mapping class inheritance
- 3.9 Summary
- 4 Working with persistent objects
- 4.1 The persistence lifecycle
- 4.2 The persistence manager
- 4.3 Using transitive persistence in NHibernate
- 4.4 Retrieving objects
- 4.5 Summary
- 5 Transactions, concurrency, and caching
- 5.1 Understanding database transactions
- 5.2 Working with conversations
- 5.3 Caching theory and practice
- 5.4 Summary
- 6 Advanced mapping concepts
- 6.1 Understanding the NHibernate type system
- 6.2 Mapping collections of value types
- 6.3 Mapping entity associations
- 6.4 Mapping polymorphic associations
- 6.5 Summary
- 7 Retrieving objects efficiently
- 7.1 Executing queries
- 7.2 Basic queries for objects
- 7.3 Joining associations
- 7.4 Writing report queries
- 7.5 Advanced query techniques
- 7.6 Native SQL
- 7.7 Optimizing object retrieval
- 7.8 Summary
Part 3 NHibernate in the real world
- 8 Developing NHibernate applications
- 8.1 Inside the layers of an NHibernate application
- 8.2 Solving issues related to .NET features
- 8.3 Achieving goals and solving problems
- 8.4 Integrating services: the case of audit logging
- 8.5 Summary
- 9 Writing real-world domain models
- 9.1 Development processes and tools
- 9.2 Legacy schemas
- 9.3 Understanding persistence ignorance
- 9.4 Implementing the business logic
- 9.5 Data-binding entities
- 9.6 Filling a DataSet with entities’ data
- 9.7 Summary
- 10 Architectural patterns for persistence
- 10.1 Designing the persistence layer
- 10.2 Implementing conversations
- 10.3 Using NHibernate in an Enterprise Services application
- 10.4 Summary
 
appendix A SQL fundamentals
appendix B Going forward
index