private void ProcessRelation(IRelation relation, IEntity entity, XmlNode classNode) { if (relation.Cardinality == Cardinality.RM_M) { throw new ApplicationException("Many-to-many relation implementation is not supported. Use association entity with two 1:M relations instead."); } else if (relation.Cardinality == Cardinality.R1_1) { DeclareOneToOneProperty(relation, entity, classNode); } else { if (relation.IsChild(entity) && relation.ChildNavigate) { DeclareManyToOneProperty(relation, classNode); } // May be parent and child when self-related if (relation.IsParent(entity) && relation.ParentNavigate) { DeclareOneToManyProperty(relation, classNode); } } }