Learning NHibernate 4
Explore the full potential of NHibernate to build robust data access code
About This Book
- Build a robust and scalable data access layer using NHibernate's features and practical wisdom
- Use patterns such as specification and query object to make data access layer maintainable and extensible
- Work effectively with legacy databases using lesser known NHibernate features
Who This Book Is For
This book targets .NET developers who have never used an ORM before, developers who have used an ORM before but are new to NHibernate, or have used NHibernate sparingly and want to learn more about NHibernate.
What You Will Learn
- Map domain entities to a database schema using the different mapping mechanisms available
- Configure NHibernate through XML configuration
- Save, update, and delete entities in the database and query data from a database using different querying methods
- Optimize database operations for speed and memory consumption
- Use NHibernate in real-life software projects
- Get to know about data access patterns such as repository, specification, and query object
- Use NHibernate with legacy databases
Connecting the object-oriented world of .NET to the relational world of databases has always been fiddly but with the onset of ORMs such as NHibernate, developers have finally got some relief in this area.
You will begin with a bird's eye view of NHibernate, touching upon its core concepts. You will define domain model and map it with database schema using different techniques. You will then look into multiple ways of storing domain entities in a database and learn important concepts such as transitive persistence, transactions and unit of work. This will be followed by retrieving data from database. Next, you will optimize your code, explore concepts such as the onion architecture, and learn where NHibernate fits best in an application's architecture. After introducing a well-known repository pattern into our application, you will learn to deal with legacy databases. We will conclude with infrequently used features such as stateless sessions, the second level cache, concurrency, and so on, which might come handy.