示例#1
0
 public abstract IEnumerable <CodeExpression> NewCtorArgs(CGenModelInterpreter aModelInterpreter, CCodeDomBuilder aDomBuilder, CRflProperty aProperty);
示例#2
0
        public override IEnumerable <CodeExpression> NewCtorArgs(CGenModelInterpreter aModelInterpreter, CCodeDomBuilder aDomBuilder, CRflProperty aProperty)
        {
            var aPTyp        = aModelInterpreter.GetReturnTyp(aProperty);
            var aPTypNme     = aModelInterpreter.GetTypName(aPTyp, false);
            var aCTyp        = aProperty.DeclaringTyp;
            var aCTypNme     = aCTyp.Name;
            var aCdTypRef    = new CodeTypeReference(aCTypNme);
            var aCdTypRefExp = new CodeTypeReferenceExpression(aCdTypRef);
            var aFldNme      = "_" + aProperty.Name + "_" + aModelInterpreter.Tok.Trg_P_Fk_Sfx + aModelInterpreter.Tok.Dom_F_Mta_P_Sfx; //aProperty.Name.TrimStart(aModelInterpreter.Tok.Trg_P_Parent_Pfx).TrimStart(aPTypNme) + aModelInterpreter.Tok.Trg_P_Fk_Sfx + aModelInterpreter.Tok.Trg_C_Mta_P_Rel_Sfx;
            var aFldRefExp   = new CodeFieldReferenceExpression(aCdTypRefExp, aFldNme);

            yield return(aFldRefExp);
        }
示例#3
0
        public override IEnumerable <CodeExpression> NewCtorArgs(CGenModelInterpreter aModelInterpreter, CCodeDomBuilder aDomBuilder, CRflProperty aProperty)
        {
            var aCTyp = aModelInterpreter.GetReturnTyp(aProperty);
            var aGenarateReverseNavigation = aCTyp.Interpret(() => bool.Parse(aCTyp.GetAttributeValue(aModelInterpreter.Tok.Mdl_T_A_GenerateReverseNavigation, () => true.ToString())));

            if (aGenarateReverseNavigation)
            {
                var aCTypNme     = aModelInterpreter.GetTypName(aCTyp, true);
                var aCdTypRef    = new CodeTypeReference(aCTypNme);
                var aCdTypRefExp = new CodeTypeReferenceExpression(aCdTypRef);
                var aPrpNme      = aModelInterpreter.Tok.GetRelationyMetaInfoPropertyName(aModelInterpreter.GetR11CReverseNavigationRefName(aProperty));
                var aFldRefExp   = new CodePropertyReferenceExpression(aCdTypRefExp, aPrpNme);
                yield return(aFldRefExp);
            }
        }