2013-04-13 28 views
5

Şu anda Windows 8 için bir Windows Mağaza Uygulaması yazıyorum ve windows uygulamaları için bir sınıf kitaplığındaki katıştırılmış veritabanındaki kalıcılık için SQLite kullanıyorum. Katıştırılmış veritabanımdaki iki farklı tablodan veri katılmaya çalışıyorum ancak SQLite, GenerateCommand yönteminden desteklenen bir özel durum oluşturmuyor.SQLite, katıştırılmış veritabanı tablolarına katıl

Şu anda her iki tabloda da veri var ve her ikisinde de her bir tabloda bir soru var. Her ikisi de aynı hatayı atan iki farklı yöntem denedim.

İlk yöntem:

var q = (from gameTable in db.Table<Model.GameSaved>() 
       join qTable in db.Table<Questions>() on gameTable.QuestionId equals qTable.QuestionId 
       select qTable 
       ).First(); 

İkinci yöntem:

var q = 
       (from question in db.Table<Model.GameSaved>() 
       select question 
       ).Join(db.Table<Questions>(), 
         game => game.QuestionId, 
         questionObject => questionObject.QuestionId, 
         (game,questionObject) => questionObject) 
       .First(); 

Buraya özlüyorum ne tam olarak emin değilim ama bir şey basit ve bariz olmak zorundadır.

cevap

10

Hiçbir şey kaçırmıyorsunuz. Linq ile birleşenler, şu anda Sqlite-net tarafından desteklenmemektedir. Kendi SQL'inizi sağlayarak ve Query yöntemini kullanarak bu konuda çalışabilirsiniz. Bunu meyilli iseniz

var q = db.Query<Questions>(
    "select Q.* from Questions Q inner join GameSaved G" 
    + " on Q.QuestionId = G.QuestionId" 
).First(); 

, Query yöntem ayrıca parametrelerini destekler: Yukarıdan İlk sorgu benzer görünümde olacaktır. Sqlite-net readme:

db.Query<Val>(
    "select 'Price' as 'Money', 'Time' as 'Date' from Valuation where StockId = ?", 
    stock.Id); 
+0

Cevabınız için teşekkür ederiz! SQLite-net'in katılımı desteklemediği görülüyordu çünkü mantıklı değildi ama şimdi kısıtlamaları daha çok anlıyorum. –

İlgili konular