IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: ASP.NET MVC partialview z vazební tabulky

Aktivity
Avatar
Michal Štěpánek:30.11.2016 10:30

Ahoj, prosím o pomoc, už se v tom několik dnů plácám jak nudle v bandasce a ze žádných dostupných zdrojů jsem nebyl schopen pochopit postup řešení. Mám třídy a tabulky (budovy a střediska), vytvořila se mi i vazební tabulka, kde se přiřazují střediska k určité budově (M:N)

public class Building
    {
        public int BuildingId { get; set; }
        public string BuildingShortName { get; set; }
        public string BuildingName { get; set; }
        public bool Active { get; set; }
        public virtual ICollection<Workplace> Workplaces { get; set; }
   }

public class Workplace
    {
        public int WorkplaceId { get; set; }
        public string WorkplaceNumber { get; set; }
        public string WorkplaceName { get; set; }
        public string WorkplaceFullName { get; set; }
        public bool Active { get; set; }
        public virtual ICollection<Building> Buildings { get; set; }
   }

Vazební tabulka obsahuje pouze sloupce "BuildingRefId" a "WorkplaceRefId" s vazbami na ID sloupce uvedených tabulek.
Snažím se o to, abych v detailu budovy měl zobrazeno jako partialview, jaká střediska jsou k dané budově přiřazena. Mohl by mi prosím někdo poradit? Jaký vytvořit ViewModel, Controller... ?

Odpovědět
30.11.2016 10:30
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Michal Štěpánek
vajkuba1234:1.12.2016 2:59

Posli tady prosimte ten DbContext s relacemi

Nahoru Odpovědět
1.12.2016 2:59
No hope, no future, JUST WAR!
Avatar
Odpovídá na vajkuba1234
Michal Štěpánek:1.12.2016 7:53

DbContext mám takto

public class TechnicianDBContext : IdentityDbContext<User, Role, int, UserLogin, UserRole, UserClaim>
    {
        public TechnicianDBContext() : base("Name=DefaultConnection") { }
        public static TechnicianDBContext Create() { return new TechnicianDBContext(); }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<User>().ToTable("Users");
            modelBuilder.Entity<Role>().ToTable("Roles");
            modelBuilder.Entity<UserRole>().ToTable("UserRole");
            modelBuilder.Entity<UserClaim>().ToTable("UserClaims");
            modelBuilder.Entity<UserLogin>().ToTable("UserLogins");
            //modelBuilder.Entity<RequestCategory>().ToTable("RequestCategories");
            //modelBuilder.Entity<RequestNote>().ToTable("RequestNotes");
            modelBuilder.Entity<Building>()
                .HasMany<Workplace>(w => w.Workplaces)
                .WithMany(b => b.Buildings)
                .Map(bw =>
                {
                    bw.MapLeftKey("BuildingRefId");
                    bw.MapRightKey("WorkplaceRefId");
                    bw.ToTable("BuildingWorkplaces");
                });

        }

        //Budovy
        public DbSet<Building> Buildings { get; set; }
        //Střediska
        public DbSet<Workplace> BuildingWorkplaces { get; set; }
        //Přiřazení středisek k budovám
        public DbSet<WorkplaceInBuilding> WorkplaceInBuildings { get; set; }
        //Číselník stavů požadavku
        public DbSet<RequestState> RequestStates { get; set; }
        //Číselník firem
        public DbSet<Company> Companies { get; set; }
        //Číselník oborů činnosti firem
        public DbSet<Specialization> Specializations { get; set; }
        //Přiřazení oboru činnosti firmě
        public DbSet<CompanySpecialization> CompanySpecializations { get; set; }
        //Profese dělníků
        public DbSet<Profession> Professions { get; set; }
        //Dělníci
        public DbSet<Worker> Workers { get; set; }
        //poznámky
        public DbSet<RequestNote> RequestNotes { get; set; }
        //kategorie požadavků
        public DbSet<RequestCategory> RequestCategories { get; set; }
        //požadavky
        public DbSet<Request> Requests { get; set; }

        public System.Data.Entity.DbSet<Technician.Models.UserRole> UserRole { get; set; }


    }
}
Nahoru Odpovědět
1.12.2016 7:53
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na vajkuba1234
Michal Štěpánek:12.12.2016 17:00

Nakonec jsem to spáchal tak, jak jsem to myslel původně. Vytvořil jsem si třídu na tu "vazební" tabulku a pak jsem k tomu udělal PartialView a funguje to. Sice to asi není podle "správných postupů", ale správné postupy mi nechtěly fungovat...

Editováno 12.12.2016 17:01
Akceptované řešení
+5 Zkušeností
Řešení problému
Nahoru Odpovědět
12.12.2016 17:00
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.