Example #1
0
        private FkTable[] GetFkRelationShips(int objectId, TypeSearchRelationship relationship, string dbPath = "")
        {
            var query = "";

            switch (relationship)
            {
            case TypeSearchRelationship.Direct:
                query = _queryGenerator.GetRelationshipDirect(objectId, "parent_object_id", dbPath);
                break;

            case TypeSearchRelationship.Indirect:
                query = _queryGenerator.GetRelationshipOneToMany(objectId, dbPath);
                break;

            case TypeSearchRelationship.ManyToMany:
                query = _queryGenerator.GetRelationshipManyToMany(objectId, dbPath);
                break;
            }

            var dtFkRel = _dbConnect.OpenConnectionAndExecute(query) ?? new DataTable();

            var tmpPos   = 0;
            var fkTables = new FkTable[dtFkRel.Rows.Count];


            foreach (DataRow item in dtFkRel.Rows)
            {
                var tmpFk = new FkTable(item);
                fkTables[tmpPos] = tmpFk;
                tmpPos++;
            }

            return(fkTables);
        }
Example #2
0
        private string GenerateMapperRelationShips(string name, FkTable fkTable, bool manyToMany = false)
        {
            string tmpStr;

            if (manyToMany)
            {
                // Many to Many
                if (fkTable.CreateConfig == 0)
                {
                    return("");
                }

                tmpStr = @"            HasMany(x => x.{0})
                            .WithMany(x => x.{1})
                            .Map(m =>
                            {5}
                                m.ToTable(""{2}"");
                                m.MapLeftKey(""{3}"");
                                m.MapRightKey(""{4}"");
                            {6});";

                return(string.Format(tmpStr,
                                     fkTable.PkTableName,
                                     name,
                                     fkTable.FkTableName,
                                     fkTable.FkColumn,
                                     fkTable.PkColumn,
                                     "{", "}"));
            }
            else
            {
                //  One to Many

                tmpStr = @"            HasRequired(x => x.{0})
                            .WithMany(x => x.{1})
                            .HasForeignKey(d => d.{2});";

                return(string.Format(tmpStr,
                                     RemoveLast_S(fkTable.PkTableName),
                                     name,
                                     UppercaseFirst(fkTable.FkColumn)));
            }
        }