A composite key may be modelled by a .NET class with a property for each key column. The class must be Serializable and override equals() and hashCode() Namespace used to find not-Fully Qualified Type Names Assembly used to find not-Fully Qualified Type Names undefined|any|none|null|0|-1|... The concrete collection should use a generic version or an object-based version. Types of polymorphism