2014-04-17 15 views
9

Ich bin neu beim Erstellen einer Windows Store-App und es erfordert die Verwendung einer Datenbank. Ich habe mich für sqlite entschieden und benutze das sqlite-net-Paket. Ich bin mir jedoch nicht sicher, wie ich eine m2m-Beziehung zwischen zwei Modellen erstellen kann.Erstellen einer ManyToMany-Beziehung zwischen zwei Modellen

class ModelA 
{ 
    [PrimaryKey, AutoIncrement] 
    public int Id { get; set; } 
    public string name { get; set; } 
    <relationship to ModelB> 
} 


class ModelB 
{ 
    [PrimaryKey, AutoIncrement] 
    public int Id { get; set; } 
    public string name { get; set; } 
} 

Müsste ich eine Liste verwenden? oder ein Byte []? Wie kann ich garantieren, dass die Eigenschaft auf ModelB beschränkt ist?

Antwort

13

Sie könnten sqlite-net-extensions verwenden, es hat ein ManyToMany Attribut, das perfekt für Ihre Bedürfnisse scheint. Dies ist ein Beispiel für die Verwendung von ihrer Website.

public class Student 
{ 
    [PrimaryKey, AutoIncrement] 
    public int StudentId { get; set; } 

    public string Name { get; set; } 
    public int Age { get; set; } 

    [ManyToMany(typeof(StudentsGroups))] 
    public List<Group> Groups { get; set; } 

    public int TutorId { get; set; } 
    [ManyToOne("TutorId")] // Foreign key may be specified in the relationship 
    public Teacher Tutor { get; set; } 
} 

public class Group 
{ 
    [PrimaryKey, AutoIncrement] 
    public int Id { get; set; } 

    public string GroupName { get; set; } 

    [ForeignKey(typeof(Teacher))] 
    public int TeacherId { get; set; } 

    [ManyToOne] 
    public Teacher Teacher { get; set; } 

    [ManyToMany(typeof(StudentsGroups))] 
    public List<Student> Students { get; set; } 
} 

public class StudentGroups 
{ 
    [ForeignKey(typeof(Student))] 
    public int StudentId { get; set; } 

    [ForeignKey(typeof(Group))] 
    public int GroupId { get; set; } 
} 
+0

Danke, genau was ich brauchte. Ich habe jedoch eine wirklich noob Frage, wie ich es zu meinem bestehenden Projekt hinzufügen kann, da die heruntergeladene Datei ein visuelles Studio-Projekt ist. – SunnySydeUp

+0

Leider gibt es kein nuGet-Paket oder eine Binärdatei, also müssen Sie es erstellen. –

+0

Ich kann das Projekt nicht öffnen, geschweige denn es erstellen. Könnte sein, weil ich Visual Studio Express verwende. Ich werde etwas mehr graben und wenn ich keine andere Lösung finden kann, oder wenn ich es schaffen kann, werde ich deine Antwort akzeptieren. – SunnySydeUp

Verwandte Themen