2017-04-21 2 views
0

Ich bin neu in Xamarin Formen & entwickelt derzeit eine App bietet Offline-Datenzugriff. Für die Offline-Funktion habe ich SQLite-Datenbank & mehrere Tabellen erstellt. Wenn ich jetzt versuche, Daten mithilfe von Join abzurufen, kann ich die Aufgabe nicht ausführen. Unten ist der CodeSQLite Join Abfrage auf zwei Tabellen in Xamarin

public Thoughts GetQueryForAllRecords(int ID) 
{ 
    var q = connection.Query<Thoughts>("SELECT Thought,CreatedOn, AssignedToName, AssignedOn FROM Thoughts JOIN AssignedThought ON Thoughts.ID = AssignedThought.ID where Thoughts.ID=?;", ID); 

    return q.Last(t => t.ID == ID); 
} 

"Gedanken" und "AssignedThought" sind zwei Tabellen. Im obigen Code erhalte ich nur Datensätze für eine Tabelle, d.h. Gedanken. Wenn ich den generischen Typ zu 'AssignedThought' ändere, dann zeigt es mir nur AssignedThought-Datensätze.

Kann mir jemand vorschlagen, was mache ich hier falsch? Ich möchte eine Join-Operation ausführen, um Datensätze von beiden Tabellen zu erhalten.

+0

Ihr Join sieht aus, als wäre es korrekt ausgeführt. Ohne das Tabellenschema zu sehen, würde ich vermuten, dass Ihr Problem mit 'Thoughts.ID = AssignedThought.ID' auftritt. In der Regel ist eine ID-Spalte der Primärschlüssel einer Tabelle, aber es klingt wie AssignedThought eine Join-Tabelle, und Sie sollten in Ihre Thoughts-Tabelle auf einem Fremdschlüssel einsteigen. Wenn Sie eine Spalte wie 'AssignedThought.ThoughtID' haben, sollten Sie wahrscheinlich anstelle von' AssignedThought.ID' an dieser Spalte teilnehmen. Wenn Sie immer noch versuchen, dieses Problem zu beheben, können Sie das Tabellenschema posten? – RToyo

Antwort

0

Haben beide Tabellen die gleichen Eigenschaften? Andernfalls müssen Sie eine DTO-Tabelle mit den erforderlichen Eigenschaften aus beiden Tabellen erstellen und als generischen Typ verwenden.