2013-04-13 14 views
5

मैं वर्तमान में विंडोज 8 के लिए एक विंडोज स्टोर एप्लिकेशन लिख रहा हूं और मैं विंडोज़ ऐप्स के लिए क्लास लाइब्रेरी में एम्बेडेड डेटाबेस पर दृढ़ता के लिए SQLite का उपयोग कर रहा हूं। मैं अपने एम्बेडेड डेटाबेस में दो अलग-अलग तालिकाओं से डेटा में शामिल होने का प्रयास कर रहा हूं लेकिन SQLite उनके जेनरेट कमांड विधि से समर्थित अपवाद फेंकता रहता है।SQLite एम्बेडेड डेटाबेस टेबल में शामिल हों

मेरे पास वर्तमान में दोनों टेबलों में डेटा है और दोनों के पास प्रत्येक तालिका में शामिल होने के लिए एक प्रश्न है। मैंने दो अलग-अलग तरीकों की कोशिश की है जो दोनों एक ही त्रुटि फेंक देते हैं।

पहली विधि:

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

दूसरी विधि:

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

मैं बिल्कुल यकीन है कि मैं यहाँ क्या याद कर रहा हूँ नहीं कर रहा हूँ, लेकिन यह कुछ सरल और स्पष्ट हो गया है।

उत्तर

10

आप कुछ भी याद नहीं कर रहे हैं। Linq के माध्यम से जुड़ता है इस समय एसक्लाइट-नेट द्वारा समर्थित नहीं है। आप अपना स्वयं का एसक्यूएल प्रदान करके और Query विधि का उपयोग करके इसके आसपास काम कर सकते हैं। ऊपर से आपका पहला प्रश्न कुछ ऐसा दिखाई देगा:

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

तुम इतने इच्छुक हैं, तो Query विधि को भी मानकों का समर्थन करता है। Sqlite-net readme से:

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

आपके उत्तर के लिए धन्यवाद! ऐसा लगता है जैसे SQLite-net शामिल होने का समर्थन नहीं करता क्योंकि यह समझ में नहीं आया लेकिन अब मैं प्रतिबंधों को और समझता हूं। –

संबंधित मुद्दे