Supported Constructs
The following LLBLGen Pro Designer constructs are supported for NHibernate. Using an element not on this list will result in a validation error of the project.
- Entity Definitions
- Enum types
- Fields mapped onto a related field. Not in queries.
- Inheritance types: TargetPerEntityHierarchy and TargetPerEntity. Mixing of inheritance hierarchies is supported
- Value Type definitions
- Typed Lists.
- Type Converters, which implement IUserType
- Typed Views mapped onto tables and views
- Multiple catalogs on databases which support that
- Multiple schemas on databases which support that
- Schema based sequences like SQL Server 2012's sequences.
- All relationship types (1:1, 1:n, m:1 and m:n (objectified and pure))
- Action Combinations on entity mappings: Create/Retrieve/Update/Delete for read/write entities and Retrieve for read-only entities.
- Fluent NHibernate 1.1 or higher
- NHibernate v3.0GA or higher
When using many to many (m:n) relationships, the 'intermediate' entity is not generated if this entity has no non-pk fields. This means that the m:n relationship is a 'pure' m:n relationship. If the intermediate entity does have non-pk fields, the m:n relationship is seen as an 'objectified' relationship. Example of such a m:n relationship is Customer m:n Employee (via Order) in Northwind.
When the intermediate entity is generated (so the m:n relationship is objectified) the navigators mapped onto the m:n relationship should be considered 'read-only'. Adding entities to these collections will cause problems when saving. To add a new m:n relationship in that case add a new intermediate entity with a reference to each side of the m:n relationship and save that entity instead.
The following databases are supported for NHibernate:
- SQL Server (default dialect is 2005)
- MySQL (default dialect is MySQL5)
- Oracle (ODP.NET and MS Oracle) (default dialect is Oracle 10g)
- PostgreSql
- DB2
- Firebird