Hirdetés

Új hozzászólás Aktív témák

  • coco2

    őstag

    EF, migrations, indexelés. Google példák alapján nem találtam rá megoldást.

    Vannak táblákat reprezentáló osztályaim, közöttük egy-egy relációk, az osztályokban 3-4 ilyesmi:

    public TablaEgyik TablaEgyik { get; set; } = new TablaEgyik();
    public TablaMasik TablaMasik { get; set; } = new TablaMasik();
    public TablaHarmadik TablaHarmadik { get; set; } = new TablaHarmadik();

    (TablaEgyik, TablaMasik és TablaHarmadik mind létező osztályok.)

    Az id-k összekapcsolása automatikusan megvan (ellenőriztem a kimenetben), de az indexelés csak egyesével van meg. Például van TablaEgyik, TablaMasik, TablaHarmadik táblám hozzákötve az EntityEgyik-hez. Az EntityEgyik-nek lesz külön oszlopa, ami a TablaEgyik kulcsához tárol értéket, meg lesz rá indexelés az EntityEgyik-ben, ami 3 külön kapcsolat esetén 3 külön index. Ilyesmi extra oszlopokat hoz létre: TablaEgyikId, TablaMasikId, TablaHarmadikId, és egyesével indexeket készít rájuk. De az jellegében Index1, és Index2, és Index3, és nem Index1 + Index2 + Index3. Kellene nekem összesített index is. Amikor megpróbálok valami ilyesmit:

    modelBuilder.Entity<EntityEgyik>()
    .HasKey(c => new { c.TablaEgyik, c.TablaMasik, c.TablaHarmadik });

    akkor azt kapom, hogy a TablaEgyik, TablaMasik, TablaHarmadik a db motor által nem támogatott típusok. A migrations-nek nem tudom megmondani, hogy a TablaEgyik, TablaMasik és TablaHarmadik mögött automatikusan beillesztett változókra ( TablaEgyikId, TablaMasikId, TablaHarmadikId ) készítsen kompozitot.

    Létezik bármi trükk rá? Vagy fel kell adnom a kényelmet + fejlesztési szabadságfokot, explicite gyártanom le nekem azokat a kulcs mezőket, plusz utána "kézileg" kell megadnom a kapcsolatokat?

    Nem lenne rossz, ha az explicit megadásokat megúszhatnám, mert azzal együtt minden kényelem is odavan, ami miatt egyáltalán a migrations-t (és az EF-et) érdemes használni.

    Bármilyen ötletnek, olvasni való blognak / linknek örülnék.

    (És bocsi a szerkesztés hiányáért. A régi szerkesztő egy kekec bughalmaz, az új szerkesztő meg egy trágya, nem tudom kiemelni a kódrészleteket kényelmesen.)

Új hozzászólás Aktív témák