2014-05-22 3 views
5

हम विजुअल स्टूडियो में ज़ैमरिन का उपयोग करके क्रॉस प्लेटफॉर्म एप्लिकेशन बनाने का प्रयास करते हैं। हमें अपने पीएलसी प्रोजेक्ट के अंदर एंड्रॉइड, आईओएस और विंडोज फोन के लिए एसक्लाइट समर्थन जोड़ने की जरूरत है। हमने NuGet के माध्यम से स्क्लाइट-नेट पीसीएल जोड़ा लेकिन SQLiteDataReader, SQLiteParameter या SQLiteDataAdapter में से कोई भी नहीं था। क्या तीनों प्लेटफार्मों के लिए mono.data.sqlite समर्थन के साथ एक पीएलसी बनाने का कोई तरीका है?xamarin क्रॉस प्लेटफ़ॉर्म एप्लिकेशन में स्क्लाइट समर्थन के साथ एक पीसीएल कैसे बनाएं

पोर्टेबल कक्षा लाइब्रेरी .NET में सीमित है: http://docs.xamarin.com/guides/cross-platform/application_fundamentals/pcl/introduction_to_portable_class_libraries/

यहाँ SQLite और पीसीएल से संबंधित एक अंश है:

उत्तर

4

Xamarin Tasky नामक एक प्रोग्राम है जो SQLite और एक पीसीएल का उपयोग करता है की एक सभ्य उदाहरण है विशेषताएं जो यह समर्थन कर सकती हैं। चूंकि इसे कई प्लेटफ़ॉर्म पर चलाने के लिए संकलित किया गया है, इसलिए यह [DllImport] कार्यक्षमता का उपयोग नहीं कर सकता है जिसका उपयोग SQLite-NET में किया जाता है। इसके बजाय SQLite-NET को एक सार वर्ग के रूप में कार्यान्वित किया गया है, और फिर शेष साझा कोड के माध्यम से संदर्भित किया गया है। सार एपीआई के एक उद्धरण नीचे दिखाया गया है:

public abstract class SQLiteConnection : IDisposable { 

public string DatabasePath { get; private set; } 
public bool TimeExecution { get; set; } 
public bool Trace { get; set; } 
public SQLiteConnection(string databasePath) { 
    DatabasePath = databasePath; 
} 
public abstract int CreateTable<T>(); 
public abstract SQLiteCommand CreateCommand(string cmdText, params object[] ps); 
public abstract int Execute(string query, params object[] args); 
public abstract List<T> Query<T>(string query, params object[] args) where T : new(); 
public abstract TableQuery<T> Table<T>() where T : new(); 
public abstract T Get<T>(object pk) where T : new(); 
public bool IsInTransaction { get; protected set; } 
public abstract void BeginTransaction(); 
public abstract void Rollback(); 
public abstract void Commit(); 
public abstract void RunInTransaction(Action action); 
public abstract int Insert(object obj); 
public abstract int Update(object obj); 
public abstract int Delete<T>(T obj); 

public void Dispose() 
{ 
    Close(); 
} 
public abstract void Close(); 

} 

साझा कोड के शेष सार वर्ग के लिए "स्टोर" और डेटाबेस से वस्तुओं "प्राप्त करें" का उपयोग करता है। इस अमूर्त वर्ग का उपयोग करने वाले किसी भी एप्लिकेशन में हमें एक पूर्ण कार्यान्वयन में गुजरना होगा जो वास्तविक डेटाबेस कार्यक्षमता प्रदान करता है।

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