2017-07-06 55 views
0

我是EF Core和SQLite的新手,我遵循https://docs.microsoft.com/en-us/ef/core/get-started/uwp/getting-started的步驟。一切正常,在C#中就好了,但它翻譯成VB的時候,我得到以下異常:沒有這樣的表:VB.net中的SQLite:UWP

Microsoft.Data.Sqlite.SqliteException: 'SQLite Error 1: 'no such table: Blogs'.' 

我試圖改變「數據源= Blogging.db」爲絕對路徑,但如果我這樣做我得到

Microsoft.Data.Sqlite.SqliteException: 'SQLite Error 14: 'unable to open database file'.'

這是我在用的,現在(在上下文中):

Protected Overrides Async Sub OnConfiguring(optionsBuilder As DbContextOptionsBuilder) 
     Dim AssetsFolder As StorageFolder = _ 
      Await Package.Current.InstalledLocation.GetFolderAsync("Assets") 

     optionsBuilder.UseSqlite(String.Format("Data Source={0}", _ 
           Path.Combine(AssetsFolder.Path, "blogging.db"))) 
End Sub 

而在App.xaml.vb:

Sub New() 
    InitializeComponent() 
    Using db = New BloggingContext() 
     db.Database.Migrate() 
    End Using 
End Sub 

任何幫助將不勝感激。如果您需要更多信息,請告訴我,我很樂意提供。

Crix

+0

您是否創建了「博客」表? SQLite EF提供程序不支持遷移。否則,你打開一個錯誤的文件。另外,如果您需要SQLite遷移庫,則可以使用此包https://www.nuget.org/packages/System.Data.SQLite.EF6.Migrations/ – bubi

+0

感謝您的快速回復。我確實運行了「添加遷移MyFirstMigration」(希望)爲我創建了博客表。所以我有一個帶有三個遷移文件的「遷移」文件夾。 – Crix

+0

從系統中卸載您的應用程序(開始 - >右鍵單擊您的應用程序 - >卸載),然後通過VS運行。 –

回答

0

這個問題似乎是由於創建的.cs文件造成的。將三個文件轉換爲.vb文件時,將創建所需的表並在EFMigrationsHistory表中創建一個條目。我已經手動轉換將以下文件從CS到VB:

  1. 20170819131117_Inital.cs
  2. 20170819131117_Inital.Designer.cs
  3. DB_ModelModelSnapshot.cs

和CS文件從項目中取出並添加了vb。如果某人現在知道如何爲vb運行add-migration命令,那將會非常有幫助。