2012-03-26 10 views
1

Ich habe immer nur mit Datenbank querys vor in der alten Art und Weise behandelt, dass Sie so etwas tun könnte:webservice Abrufmethoden

SELECT column_name(s) 
FROM table_name1 
LEFT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name 

Aber in den letzten paar Wochen habe ich über einen Web Service speziell wcf gelernt haben und das Aussetzen so ruhig wie möglich. Was ich tho frage mich, wenn Sie so etwas wie dieses nehmen:

public class Student 
{ 
    /** 
    * Student matriculation number 
    */ 
    [DataMember(Name = "matric")] 
    public string Matric; 
    /** 
    * First name of the student 
    */ 
    [DataMember(Name = "firstname")] 
    public string FirstName; 
    /** 
    * Last name of the student 
    */ 
    [DataMember(Name = "lastname")] 
    public string LastName; 
    /** 
    * The programme that the student is on 
    */ 
    [DataMember(Name = "programme")] 
    public string Programme; 
} 

Wenn ich einen anderen Dienst, der hatte, war sagen Gruppen, in denen jeder Schüler zu einer Gruppe gehören könnte, und ich konnte speziell für einen Studenten zu einer Gruppe gehören, suchen Wie wäre es beim Speichern mit XML?

Kennt jemand eine gute Anleitung oder ein Beispiel für die oben genannten, in denen Sie zwei Arten von Datenmember oder Verträge beitreten können?

Antwort

1

Der RESTful-Service-Ansatz ist nicht wirklich mit der Art verbunden, wie Sie Tabellen in SQL verbinden. Grundsätzlich haben Sie 4 CRUD-Operationen - erstellen, abrufen, aktualisieren und löschen. Und jede dieser Operationen entspricht einem Verb des HTTP-Protokolls. Ich denke, sie sind -

GET - POST SELECT - UPDATE PUT - INSERT DELETE - DELETE

So je nach Betrieb Sie den WCF-Dienst über das spezifische HTTP-Verb nennen, durch Argumente in den query Zeichenfolge. Z.B. wenn Sie einen Datensatz mit ID = 5 löschen möchten, können Sie die folgenden HTTP-Anfrage

DELETE /ServiceName.svc/Records/5 ausführen

Was Sie tatsächlich in Ihrem Fall brauchen, ist die Datenbankspalten zu Business-Objekten zuordnen über eine ORM-Software - zum Beispiel Microsoft Entity Framework. Ich würde vorschlagen, dass Sie hier beginnen - http://msdn.microsoft.com/en-us/library/bb386876.aspx

+0

Noch würde nicht erklären, wie ich eine Gruppe bekommen konnte, unter der jeder Benutzer beigetreten ist? Altho sehr netter Kommentar und ich werde der Entity Frame Arbeit eine Bash geben! +1 –

+1

Sie können eine Eigenschaft des Typs Liste für Ihre Student-Klasse erstellen. Dann ontop Ihrer Studentenklassendeklaration fügen Sie das folgende Attribut - [Knowntype (typeof (Group))] Das wird richtig serialisiert/deserialisiert die Gruppe Sammlung im Service. Überprüfen Sie dies für weitere Informationen - http://msdn.microsoft.com/en-us/library/ms730167.aspx#Y800 –

+0

Danke, sieht etwas kompliziert aus der üblichen Datenbank-Zeug war, dass es etwas einfacher wäre, aber Das hat darauf geantwortet, denke ich! –