none
Lightswitch und Join , Kombinieren von Tabellen RRS feed

  • Frage

  • Hallo zusammen,

    die ersten 3 Tage habe ich begeistert die Möglichkeiten von LightSwitch erforscht. Wirklich durchdacht, schnell einfache Tabellen anzulegen und darzustellen. Seit gestern stehe ich allerdings vor einem Problem, das sich einfach nicht lösen lässt. Stundenlages Testen und Recherchen im Netz, bis ich schließlich zu Feststellung komme:

    LightSwitch kann einfach keine Joins auf zwei oder mehr Tabellen? Kann das tatsächlich sein, oder habe ich etwas übersehen?

     

    Bitte um Antwort auf die folgende Frage:

    Geht ein ordinärer Join auf zwei Tabellen irgendwie zu realisieren (unter Verwendung des LINQ JOIN Befehls!)?

     

    - die indirekte Variante, meine Seiten nach Collections aufzubauen gefällt mir nicht, da ich in dem Screen mehrer Abfragen auf unterscheidlichen Tabellen darstellen möchte (es gibt nicht "die eine" Collection auf dem Screen)

    - die indirekte Variante über WCF RIA Services halte ich im Moment für völlig überzogen, damit verliert LightSwitch seinen eigentlichen Vorteil (der schnellen, einfachen Umsetzung)

     

    Ich möchte nur wissen, ob Joins tatsächlich nicht möglich sind.

    Falls dem so ist, werd ich mir eher das normale Visual Studio ansehen (und Lightswitch damit aufgeben)

    Besten Dank!

     





    • Bearbeitet Antha_TM Sonntag, 18. Dezember 2011 14:14
    • Typ geändert Antha_TM Sonntag, 18. Dezember 2011 15:40
    Sonntag, 18. Dezember 2011 14:09

Antworten

  • Hallo Antha_TM,

    ja es ist so, Join über mehrere Tabellen funktionert nur über WCF RIA Services und wird nicht nativ unterstützt.

    Wenn man sich die Zeit nimmt und so einen WCF Service geschrieben hat, kommt man sehr gut zurecht. Es ist auch eher unwahrscheinlich dass man ohne WCF Services auskommt wenn man Aufgaben erfüllen möchte wie z.B. das ActiveDirectory auslesen oder auf andere Schnittstellen zugreifen möchte.

    Der Anwendungsbereich für WCF Services ist sehr groß und vorteilheift da es somit keine Grenzen gibt und man auf dieser Ebene immer ausweichen kann falls notwendig.

    Ob man deswegen Lightswitch "aufgibt" ist aus meiner Sicht eine einfache Kosten/Nutzen Frage. Ich behaupte dass kein vergleichbares Visual Studio "Framework" so schnell zu Ergebnissen führt wie mit Lightswitch. D.h. trotz aller möglichen Einschränkungen bin ich aus eigener Erfahrung mit Lightswitch in Projekten erfolgreicher als mit anderen Alternativen.

    Gruß!

     

     

     

     

     

     

    Donnerstag, 22. Dezember 2011 14:44

Alle Antworten

  •  

    Hier nochmal als Info, was ich u.a. tun möchte

    Private Sub ProdukteInPageTreeZuProjekt_PreprocessQuery(ProjektID As System.Nullable(Of Integer), ByRef query As System.Linq.IQueryable(Of LightSwitchApplication.Pagetreefunctions))
    
    query = From ptf In query
                        Join pt In PagetreeSet
                        On ptf.PagetreeID.Id Equals pt.Id
                        Where pt.ProjektID.Id = ProjektID
                        Select ptf.Zuordnungsbezeichnung
    
    End Sub
    

     

    Fehlermeldung:

    Auf die Definition der Join-Methode kann in diesem Kontext nicht zugegriffen werden.   

    - Ähnliche Fehlermeldungen zur Select-Many Methode bekommt man bei leicht abgewandelter Darstellung des Suchstrings (wenn ohne join, dafür from x, from y where ... )

     

    ptf.Zurodnungsbezeichnung ist ein String, der auf Datenbankebene aus dem verknüpften Produkt berechnet wird

    Datenbankrelation ist so gestrickt => Projekte - 1:n - Pagetree - 1:n - Pagetreefunctions - n:1 - Produkte

    Pagetree und Produkte sind praktisch eine m:n Verknüpung.

    Ich möchte mit der Abfrage eine Auflistung aller Produkte haben, die im Pagetree eines bestimmten Projektes verwendet werden.

     

    Vermutung:

    - Rückgabe dieser Anfrage wäre eine Liste von Strings

    - Lightswitch kann diese variablität in den Datentypen nicht und erzwingt, das die Query einen Datentyp "Pagetreefunction -> heißt bei mir PagetreefunctionSet) erzeugt

    - das Join wurde daher standardmäßig abgeschaltet / nicht zugelassen





    • Bearbeitet Antha_TM Sonntag, 18. Dezember 2011 15:29
    Sonntag, 18. Dezember 2011 15:13
  • Hallo Antha_TM,

    ja es ist so, Join über mehrere Tabellen funktionert nur über WCF RIA Services und wird nicht nativ unterstützt.

    Wenn man sich die Zeit nimmt und so einen WCF Service geschrieben hat, kommt man sehr gut zurecht. Es ist auch eher unwahrscheinlich dass man ohne WCF Services auskommt wenn man Aufgaben erfüllen möchte wie z.B. das ActiveDirectory auslesen oder auf andere Schnittstellen zugreifen möchte.

    Der Anwendungsbereich für WCF Services ist sehr groß und vorteilheift da es somit keine Grenzen gibt und man auf dieser Ebene immer ausweichen kann falls notwendig.

    Ob man deswegen Lightswitch "aufgibt" ist aus meiner Sicht eine einfache Kosten/Nutzen Frage. Ich behaupte dass kein vergleichbares Visual Studio "Framework" so schnell zu Ergebnissen führt wie mit Lightswitch. D.h. trotz aller möglichen Einschränkungen bin ich aus eigener Erfahrung mit Lightswitch in Projekten erfolgreicher als mit anderen Alternativen.

    Gruß!

     

     

     

     

     

     

    Donnerstag, 22. Dezember 2011 14:44