Entity Framework 6, a sok-sok (sok-sok) táblák között
Entity Framework végrehajtását támogatja a sok-sok (sok-sok) a táblákat az adatbázisban. Egy ilyen kapcsolat egy relációs adatbázis biztosított használata révén köztes tábla, amely kapcsolatban van két másik asztal keresztül egy-a-többhöz. Ennek eredményeként a két tábla között van kialakítva a sok-sok. Tény, hogy ebben a tekintetben nincs master és a függő tábla, mint már leírta egy-egy, egy-sok kapcsolat, a köztes tábla függ két fő asztal.
Térjünk a figyelmet a példa egy olyan modellt, amely már azonosított az ügyfél asztalra, és a parancsait. A táblázatban a megrendelések (megbízások), szoktuk mező leírja a nevét, a termék és annak költségeit. Nyilvánvaló, hogy a használata az adatbázis struktúra nem hatékony. A jobb megközelítés, előírja a az asztal termék, amely tartalmaz a gyűjtemény áru a boltban, és az asztalok között, termék és ügyfél létre kell hozni egy sok-sok kapcsolat segítségével a köztes a Rendelések tábla. Azaz, összefüggésben a példánkban a sok-sok azt mondta, hogy az egyik ügyfél rendelhet több termékre és egy termék is rendelhető több ügyféllel.
Nézzük végre ezt a modellt a Code-First. Az alábbiakban bemutatjuk a szerkezet a modell, amelyben az Entity Framework automatikusan felismeri a sok-sok kapcsolat két tábla között ügyfelek és termékek (az előző cikkben, valamint a Rend osztály, levettük Profile osztály, amelyet már felhasználtak a vita egy-egy):
Ha az alkalmazás futtatásához, az Entity Framework automatikusan újra létrehozza az adatbázist, mivel Módosult a modellhez. Code-First képes lesz felismerni a kapcsolat ezek között osztályok sok-sok kapcsolat, és hozzon létre egy átmeneti tartalmazó tábla idegen kulcs kapcsolatot a Vevők táblában a termékek, ahogy azt az alábbi ábra mutatja:
Érdemes megjegyezni, hogy ezek az idegen kulcsokat és az elsődleges kulcsokat staging asztalra. részletező tábla neve két kapcsolódó táblázatokban a példánkban ez nevű ProductCustomers. A nevét a generált idegen kulcsok ugyanezt az egyezmények, hogy már korábban leírtak szerint. Miután a sok-sok kapcsolat van meghatározva, Entity Framework tudja, mit kell használni az SQL utasításból beszúrni, törölni, és frissíteni az adatokat a kapcsolódó táblázatokat.
Sok-sok kapcsolat, akkor is testre használatával Fluent API-eszközöket. Erre akkor lehet szükség, ha használ több táblák közötti kapcsolatok meghatároznia, hogy egy pár navigációs funkciók megvalósítása érdekében ennek a kapcsolatnak. Az alábbiakban egy példa erre konfiguráció:
Vegyük észre, hogy itt egyértelműen meg kell határozni a nevét a részletező tábla ha hívja a segítő módszer Map (), ami a Entity Framework létrehoz egy indítási például a Rendelések tábla nevével, ahelyett ProductCustomers.
Azt is egyértelműen meg kell határozni a nevét a külföldi kulcsok segítségével MapLeftKey () és MapRightKey () objektum ManyToManyAssociationMappingConfiguration konfigurációt, amelyet át a Map () a cselekvési küldött paramétert. Ezek a módszerek azt jelzik, a bal és jobb gombok a részletező tábla. Ahhoz, hogy ne legyen összetéveszthető, meg kell emlékezni egy egyszerű szabály, hogy a bal gomb pont a lényegét az osztály, amelyhez az úgynevezett hasMany () metódus előtt, és a megfelelő kulcs pont a lényegét az osztály, amelyhez az úgynevezett withmany () metódust. Ha őket a rossz irányba semmi rossz nem fog történni, csak az idegen kulcs ügyfélId fog utalni a termék asztal és a külső ProductID kulcsa az Ügyfél táblában.