2017-06-04 4 views
0

auswählen Ich habe 4 Tabellen und zwischen ihnen gibt es eine, die eine Zwischentabelle AM_PERFIL_APLICACIONES_TBL ist und wenn die Zuordnung der Zwischentabelle nicht zu schätzen ich in der edmx und ich habe gelesen, dass mehrere Artikel, in denen sie erklären, dass es eine Frage der Beziehungen von vielen zu vielen ist.Viele zu viele Beziehung EF 6 (4 Tabelle und 1 viele zu viele Beziehung), wie mit linq

Die Frage ist, wie könnte ich eine Auswahl zu den 4 Tabellen mit Linq machen.

Wie kann ich UPDATE, INSERT oder DELETE die Tabelle AM_PERFIL_APLICACIONES_TBL.

Ich habe so etwas wie dieses

var query_modulo = (from a in menu.AM_USUARIOS_TBL 
            join b in menu.AM_PERFIL_APLICACIONES_TBL on a.ID_PERFIL equals b.ID_PERFIL 
            join c in menu.AM_APLICACIONES_TBL on b.ID_APLICACION equals c.ID_APLICACION 
            join d in menu.AM_MODULOS_TBL on c.ID_MODULO equals d.ID_MODULO 
            where a.ID_USUARIO == _usrid 
            select new { d.ID_MODULO, d.DESCRIPCION }).Distinct().ToList(); 
+0

Wenn Sie Ihr Modell ordnungsgemäß eingerichtet haben, müssen Sie "AM_PERFIL_APLICACIONES_TBL" nicht aktualisieren. EF wird es aus Ihrem Modell herausfinden und diese Tabelle für Sie aktualisieren. – CodingYoshi

+0

Können Sie mir erklären, wie ich das Modell richtig einrichten kann? –

+0

http://www.entityframeworktutorial.net/code-first/configure-many-to-many-relationship-in-code-first.aspx – CodingYoshi

Antwort

1

Wenn Sie Ihr Objektmodell einrichten, wenn es sich um eine Many-to-Many-Tabelle zwischen Usuarios (U) und Aplicaniones (A) würden Sie wahrscheinlich eine Sammlung von (A) innerhalb von jedem (U) und eine Sammlung von (U) innerhalb von jedem (A).

Dies setzt jedoch voraus, dass Ihre Verknüpfungstabelle, Perfil_Aclicaniones (PA), so eingerichtet ist, dass sie nur die ID von (U) (ID_Perfil) und die ID des Aplicanions enthält. (A) (angenommen ID_Aplicanion)

Wenn dies der Fall ist, behandelt Entity Framework die Zwischen-Tabelle automatisch. So richten Sie eine neue Verbindung zwischen (U) und (A) fügen Sie die (A) einen Verweis auf Ihre u.Aplicaniones Sammlung, und fügen Sie die (U) Verweis auf Ihre A.Usarios (oder Perfils, je nachdem, was es ist) Wenn Wenn Sie die Objekte beibehalten, sollte EF den Beitrittsdatensatz automatisch erstellen.

Wenn stattdessen Ihre Entitäten (U) und (A) stattdessen Sammlungen von PAs enthalten, müssen Sie die Entität (PA) explizit erstellen und dann die Verweise auf die Datensätze (U) und (A) festlegen fügen Sie diesen (PA-) Datensatz den U.Perfil_Aclicaniones bzw. den A.Perfil_Aplicaniones hinzu.

Es hängt alles davon ab, wie Ihre Entitäten (Klassen) strukturiert sind. EF kann Verknüpfungstabellen automatisch verwalten, aber aus dem Speicher muss die Verknüpfungstabelle nur die verknüpfenden ID-Spalten enthalten. Andernfalls müssen Sie die Verknüpfungstabelle manuell zuordnen und die Verknüpfungen verwalten.