public void Visit(BeginAdHocRelation instruction)
        {
            //validateAdhocRelation(beginAdHocRelation);

            var parentClarifyGenericMap = _genericStack.Peek();

            parentClarifyGenericMap.ClarifyGeneric.DataFields.Add(instruction.FromTableField.Resolve(_services).ToString());

            var tableGeneric = parentClarifyGenericMap.ClarifyGeneric.DataSet.CreateGeneric(instruction.ToTableName.Resolve(_services).ToString());

            tableGeneric.DataFields.Add(instruction.ToTableFieldName.Resolve(_services).ToString());

            var subRootInformation = new SubRootInformation
            {
                ParentKeyField = instruction.FromTableField.Resolve(_services).ToString(),
                RootKeyField   = instruction.ToTableFieldName.Resolve(_services).ToString()
            };

            var model             = _modelStack.Peek();
            var clarifyGenericMap = new ClarifyGenericMapEntry
            {
                ClarifyGeneric = tableGeneric,
                Model          = new ModelInformation
                {
                    ModelName      = model.ModelName,
                    ParentProperty = model.ParentProperty,
                    IsCollection   = model.IsCollection
                },
                NewRoot = subRootInformation
            };

            parentClarifyGenericMap.AddChildGenericMap(clarifyGenericMap);
            _genericStack.Push(clarifyGenericMap);
        }
        public void Visit(BeginAdHocRelation beginAdHocRelation)
        {
            validateAdhocRelation(beginAdHocRelation);

            var parentClarifyGenericMap = _genericStack.Peek();

            parentClarifyGenericMap.ClarifyGeneric.DataFields.Add(beginAdHocRelation.FromTableField);

            var tableGeneric = parentClarifyGenericMap.ClarifyGeneric.DataSet.CreateGeneric(beginAdHocRelation.ToTableName);

            tableGeneric.DataFields.Add(beginAdHocRelation.ToTableFieldName);

            var subRootInformation = new SubRootInformation
            {
                ParentKeyField = beginAdHocRelation.FromTableField,
                RootKeyField   = beginAdHocRelation.ToTableFieldName
            };

            var clarifyGenericMap = new ClarifyGenericMapEntry
            {
                ClarifyGeneric = tableGeneric,
                Model          = _modelStack.Peek(),
                NewRoot        = subRootInformation
            };

            parentClarifyGenericMap.AddChildGenericMap(clarifyGenericMap);
            _genericStack.Push(clarifyGenericMap);
        }
        public void Visit(BeginAdHocRelation beginAdHocRelation)
        {
            validateAdhocRelation(beginAdHocRelation);

            var parentClarifyGenericMap = _genericStack.Peek();

            parentClarifyGenericMap.ClarifyGeneric.DataFields.Add(beginAdHocRelation.FromTableField);

            var tableGeneric = parentClarifyGenericMap.ClarifyGeneric.DataSet.CreateGeneric(beginAdHocRelation.ToTableName);
            tableGeneric.DataFields.Add(beginAdHocRelation.ToTableFieldName);

            var subRootInformation = new SubRootInformation { ParentKeyField = beginAdHocRelation.FromTableField, RootKeyField = beginAdHocRelation.ToTableFieldName };

            var clarifyGenericMap = new ClarifyGenericMapEntry { ClarifyGeneric = tableGeneric, Model = _modelStack.Peek(), NewRoot = subRootInformation };
            parentClarifyGenericMap.AddChildGenericMap(clarifyGenericMap);
            _genericStack.Push(clarifyGenericMap);
        }