コード例 #1
0
        private static string CreateRelationNameMxToId(CloneTableDefInfo tableInfo, CloneRelationDefInfo relation, CloneTableDefInfo relationTable, IList <string> relationNames)
        {
            string uniqueXPkName = tableInfo.TargetPKUniqueAllNames();

            string uniqueRPkName = relationTable.TargetPKUniqueAllNames();

            string uniqueForName = relation.TargetForeignNamestAllUnique();

            string uniqueRelName = relation.TargetNamestAllUnique();

            string[] columnsNames      = uniqueForName.Split(new char[] { '.' });
            int      columnsNamesCount = columnsNames.Length;

            string[] colRelsNames      = uniqueRelName.Split(new char[] { '.' });
            int      colRelsNamesCount = colRelsNames.Length;
            string   uniqueRelXEnds    = colRelsNames[colRelsNamesCount - 1];

            int realtionNameCount = relationNames.Count((rn) => (rn.CompareTo(uniqueForName) == 0));

            string constraintName = relation.m_strName.ToLower() + NAMEAUTO_REF_ID;

            if (uniqueXPkName.CompareTo(uniqueRelName) != 0)
            {
                if (uniqueRelXEnds.CompareTo("id") == 0)
                {
                    constraintName = columnsNames[columnsNamesCount - 1];
                }
                else if (uniqueRelXEnds.CompareTo("firma_id") == 0)
                {
                    constraintName = relation.m_strTable.ToLower() + NAMEAUTO_REF_ID;
                }
                else if (uniqueRelXEnds.EndsWith("kod"))
                {
                    string constraintColl = columnsNames[columnsNamesCount - 1];
                    constraintName = CreateConstraintName(constraintColl, "kod", NAMEAUTO_REF_ID);
                }
                else if (uniqueRelXEnds.Contains("kod"))
                {
                    string constraintColl = columnsNames[columnsNamesCount - 1];
                    constraintName = CreateConstraintName(constraintColl, "kod", NAMEAUTO_REF_ID);
                }
                else if (uniqueRelXEnds.EndsWith("cislo"))
                {
                    string constraintColl = columnsNames[columnsNamesCount - 1];
                    constraintName = CreateConstraintName(constraintColl, "cislo", NAMEAUTO_REF_ID);
                }
                else if (uniqueRelXEnds.Contains("cislo"))
                {
                    string constraintColl = columnsNames[columnsNamesCount - 1];
                    constraintName = CreateConstraintName(constraintColl, "cislo", NAMEAUTO_REF_ID);
                }
                else if (uniqueRelXEnds.EndsWith("id"))
                {
                    string constraintColl = columnsNames[columnsNamesCount - 1];
                    constraintName = CreateConstraintName(constraintColl, "id", NAMEAUTO_REF_ID);
                }
                else if (uniqueRelXEnds.Contains("id"))
                {
                    string constraintColl = columnsNames[columnsNamesCount - 1];
                    constraintName = CreateConstraintName(constraintColl, "id", NAMEAUTO_REF_ID);
                }
                else if (uniqueRelXEnds.CompareTo("mesic") == 0)
                {
                    constraintName = relation.m_strTable.ToLower() + NAMEAUTO_REF_ID;
                }
                else
                {
                    string constraintColl = columnsNames[columnsNamesCount - 1];
                    constraintName = constraintColl + NAMEAUTO_REF_ID;
                }
            }
            else
            {
                constraintName = columnsNames[columnsNamesCount - 1];
            }

            return(constraintName);
        }