2016-11-22 12 views
0

SQLite.Net-PCLでデッドセンタから降りているようです。私はPCL proj、Droid proj、iOS proj、Windows UniversalプロジェクトのXamarinフォームソリューションを持っています。私はSQLite.Net-PCLとSQLite.Net.Core-PCLのためのナゲットパッケージをインストールしました。XamarinフォームでSQLite.Net-PCLの実例を見つけることができません

だから、githubプロジェクトに行き始めるにはいくつかの素晴らしい例がありますが、どれも動作しません。明らかに、データベース接続にプラットフォームを渡す必要がありますが、SQLitePlatformWin32などのすべての参照エラーが発生します。

ウェブで参考文献を検索してください。何もありません。プラットフォームのためにナゲットを検索してください...何もありません。

私には何が欠けていますか? (はい、私はダム感じる)

彼らが持っている例は

public class Database : SQLiteConnection 
{ 
    public Database(string path) : base(new SQLitePlatformWin32(), path) 
    { 
     CreateTable<Stock>(); 
     CreateTable<Valuation>(); 
    }} 

だと私は私が「新しいSQLitePlatformWin32」行に解決することはできません参照エラーが発生します。

+0

ToDoサンプルをご覧ください:https://github.com/xamarin/xamarin-forms-samples/tree/master/Todo – Jason

答えて

1

他に苦労している人は、ここで行う必要があります。

  • SQLite.Net-PCL、SQLite.Net.Core-PCLとSQLite.Net.Async-PCL nugetsをインストール
  • あなたのPCLでISQLiteするためのインタフェースを作成します。

    public interface ISQLite { SQLiteConnection GetConnection(); }

  • PatientDatabase = DependencyService.Get<ISQLite>().GetConnection(); PatientDatabase.CreateTable<Patient>();

    DependencyService経由
  • コールのgetConnection 0

  • 上記は、ご使用のプラットフォームに基づいて接続を作成します(例:アンドロイド、イオス)。各プラットフォームのプロジェクトでは、あなたがAndroidの

    [assembly: Xamarin.Forms.Dependency(typeof(SQLite_Android))] // ... public class SQLite_Android : ISQLite { public SQLite_Android() { } public SQLite.Net.SQLiteConnection GetConnection() { var sqliteFilename = "TodoSQLite.db3"; string documentsPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); // Documents folder var path = Path.Combine(documentsPath, sqliteFilename); // Create the connection var conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.XamarinAndroid.SQLitePlatformAndroid(), path); // Return the database connection return conn; } }

のためにこのようなDependencyService経由でアクセス可能であるのgetConnectionを持っている必要があります私の問題は、私は私のPCLで接続を作成しようとしていたと私はできませんでしたプラットフォームを見つけるためには、個々のプロジェクトごとに接続を作成する必要があります。

関連する問題