Summary
Legacy databases do not refer to databases that are old. It is more of a situation that refers to when the mismatch between your domain model and the database schema is too great. This could happen on any database schema for a variety of reasons ranging from using existing database to build a new application, to strict rules around how the database schema must be designed. Working with legacy database situation is interesting and challenging at the same time. NHibernate has some features built-in that help with navigating through legacy databases. This makes working with legacy databases more fun.
In the old days, developers preferred using natural identifiers, and at times that led to composite identifiers. NHibernate supports composite identifiers to the extent of getting most common database operations done. Some features, such as identifier generation, would not work with composite identifiers. A single entity needing to be mapped to multiple tables, or multiple entities needing...