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); }
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))); } }