2017-04-21 2 views
0

Xamarinの新版&は、オフラインデータアクセスを提供するアプリケーションを現在開発しています。オフライン機能のために、私はSQLiteデータベース&複数のテーブルを作成しました。今すぐJoinを使用してデータを取得しようとしているときに、このタスクを実行できません。コードは次のとおりですXamarinの2つのテーブルに対するSQLite Joinクエリ

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); 
} 

「考え」と「割り当て済み」は2つの表です。上記のコードでは、私は1つのテーブル、つまり思考のレコードしか取得していません。ジェネリックタイプを 'AssignedThought'に変更している場合は、AssignedThoughtレコードのみが表示されます。

ここで間違っていることは誰にでも示唆できますか?両方のテーブルからレコードを取得するために結合操作を実行したいと思います。

+0

あなたの参加は正しく行われたようです。テーブルスキーマを見ることなく、私はあなたの問題が 'Thoughts.ID = AssignedThought.ID'であると推測します。通常、ID列は表の主キーですが、AssignedThoughtが結合表であるように聞こえ、外部キーのThoughts表に結合する必要があります。あなたが 'AssignedThought.ThoughtID'のような列を持っているならば、おそらく' AssignedThought.ID'の代わりにその列に加わるべきです。この問題を解決しようとしている場合は、テーブルスキーマを投稿できますか? – RToyo

答えて

0

両方のテーブルに同じプロパティがありますか?それ以外の場合は、両方のテーブルから必要なプロパティを持つDTOテーブルを作成し、ジェネリックタイプとして使用する必要があります。

関連する問題