locked
Silverlight Problem Authentication und ASP.Net Entity Data Model m:n RRS feed

  • Frage

  • Hallo,

    ich bin gerade dabei mich in Silverlight ein zu arbeiten. Doch nun habe ich zwei Probleme bei denen ich einfach nicht weiter komme.

    Beim Loggin bekomme ich es einfach nicht hin, dass die Rollen geladen werden.
    Was das ganze nun kompliziert macht, ist der Umstand, dass ich 3 Tabellen habe, eine für die Benutzer, eine für die Rollen und eine die die Benutzer und die Rollen zusammenführt. Doch auf die 3 Tabelle kann ich nicht zugreifen, da diese im ADO.Net Entity Data Model nicht vorhanden ist.

    Damit kommen wir auch schon zum zweiten Problem, wie funktionieren m:n Bezeihungen bei ADO.Net Entity Data Modelen?

    Kann mir da vielleicht jemand helfen?
    Sie können sich das Projekt unter
    http://www.it-entwickler-hilbert.de/SilverlightProjekt.zip
    downloaden.

    Vielen Dank und viele Grüße

    Jörg Hilbert
    • Bearbeitet Hilbert21 Dienstag, 26. März 2013 16:38 Schreibfehler
    Dienstag, 26. März 2013 16:37

Alle Antworten

  • Hallo Joerg Hilbert,

    leider kann ich noch nicht ganz nachvollziehen, was Du erreichen willst. Kannst das Problem bitte ein wenig ausfuehrlicher schildern. Auch ist mir nicht klar ob nur eine Tabelle nicht da ist oder alle 3 nicht da sind?


    Grüße,

    Stefan Kleinewillinghoefer, MICROSOFT   Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip Entwickler helfen Entwicklern“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden koennen.

    Donnerstag, 28. März 2013 12:17
  • Hi,
    die NavigationProperties werden in der von Dir genutzten Version (Silverlight 4) nicht in den Proxy übertragen. Das musst Du auf herkömmliche Weise machen – Linq absetzen auf die Mapping-Tabelle.
     
    --
    Peter Fleischer
    Donnerstag, 28. März 2013 14:20
  • Hi,
    nachfolgend ein kleine “Rezept”, wie Du das mit VS 2012 und Silverlight 5 machen kannst:
     
    1. Gegeben ist eine Datenbank mit den beiden Mastertabellen Benutzer und Rollen und der n:m-Verbindungstabelle
     
    2. Silverlight Anwendung im VS 2012 anlegen (Web Anwendung mit Framework 4.5, Silverlight 5 Anwendung)
     
    3. In der Web Anwendung ein ADO.NET Entity Data Model hinzufügen mit den 3 Tabellen der Datenbank, die als many–to-many zwischen Entity “Rollen” und Entity “Benutzer” verknüpft werden.
     
    4. In den Eigenschaften des EDM in der “Code Generation Strategy” “none” auf “Default” ändern, um das Objektmodel zu generieren.
     
    5. Die tt-Dateien im Model, die beim Anlegen mit “Code Generation Strategy = None” erzeugt wurden, löschen.
     
    6. Der Web Anwendung ein WCF Data Service hinzufügen.
     
    7. Den WCF Data Service ergänzen mit der Entity-Klasse und und den Namen der EntityObject Klassen, die in Silverlight konsumiert werden sollen.
     
    8. Den Service testen (Service als Startseite, im Browser müssen fehlerfrei die XML-Daten mit den EntityObject Klassen angezeigt werden).
     
    9. Der Silverlight Anwendung eine Service Reference hinzufügen.
     
    10. Eine DataServiceCollection(Of Benutzer) erstellen und mit LoadAsync den Ladevorgang starten.
     
    11. Vor dem Starten des Ladevorganges ist an das Endeereignis (LoadCompleted) eine Ereignisroutine zu hängen.
     
    12. In der Ereignisroutine kann die Collection als Quelle für die Anzeige genutzt werden.
     
    13. Um über die Verbindungstabelle auf die dem Benutzer zugeordneten Rollen zuzugreifen, sind diese auch zu laden (über Expand).
     
    --
    Peter Fleischer
    Sonntag, 31. März 2013 11:21