簡體   English   中英

Database.EnsureCreated似乎不是在創建數據庫(xamarin.forms)

[英]Database.EnsureCreated does not seem that it's creating a database (xamarin.forms)

我正在使用EntityFrameworkSqlite作為數據庫制作一個簡單的應用程序,以將該人添加並保存到數據庫中並將其添加到ListView或刪除它。

我有一個Db類,在構造方法中,我使用了稱為

Database.EnsureCreated()

建立我的數據庫 在MainPage.xaml.cs中,我創建了Db class(db)的實例,我想獲取數據庫中的所有Workers表並將其作為ListView的ItemSource傳遞。 我也在OnAppearing()方法中執行這些操作,以在啟動時顯示我的ListView項目,但我遇到此異常錯誤:

Microsoft.Data.Sqlite.SqliteExceptions:'SQLite錯誤1:'沒有這樣的表:Workers'。

(請參見下圖)

在此處輸入圖片說明

看來Database.EnsureCreated()並未創建我的數據庫。 也許它創建了我的數據庫,但是由於某些原因而無法創建表,我想知道那些原因

這是我的Db類:

在此處輸入圖片說明

這是我的db_path: Android

        string FileName = "Workers.sqlite";
    string FileLocation = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
    string db_path = Path.Combine(FileLocation, FileName);

iOS

            string FileName = "Workers.sqlite";
        string FileLocation = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "..", "Library");
        string db_path = Path.Combine(FileLocation, FileName);

那么數據庫和表創建有什么問題?

我只是在這些行中添加了using關鍵字,但它意外地修復了它。

(我還刪除了一些db_path變量,並通過從App類中獲取了它,使db_path源代碼更干凈,更流暢)。

現在,代碼如下所示:

        using (Db db = new Db(App.db_path))
        {
            List<Worker> AllWorkers = db.Workers.ToList();
            WorkersListView.ItemsSource = AllWorkers;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM