2017-07-06 23 views
0

Ich bin neu in EF Core und SQLite und ich folgte den Schritten unter https://docs.microsoft.com/en-us/ef/core/get-started/uwp/getting-started. Alles funktioniert in C# ganz gut, aber wenn es um die VB übersetzen, erhalte ich die folgende Ausnahme:keine solche Tabelle: SQLite in VB.net: UWP

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

Ich habe versucht, das „Data Source = Blogging.db“ zu einem absoluten Pfad zu ändern, aber wenn ich tun ich bekomme

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

das ist, was ich jetzt bin mit (im Rahmen):

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 

Und im App.xaml.vb:

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

Jede Hilfe würde sehr geschätzt werden. Wenn Sie weitere Informationen benötigen, lassen Sie es mich bitte wissen und ich werde es gerne zur Verfügung stellen.

Crix

+0

Haben Sie die Tabelle 'Blogs' erstellt? Der SQLite EF-Anbieter unterstützt keine Migrationen von Anfang an. Andernfalls öffnen Sie eine falsche Datei. Wenn Sie eine SQLite-Migrationsbibliothek benötigen, können Sie dieses Paket auch verwenden https://www.nuget.org/packages/System.Data.SQLite.EF6.Migrations/ – bubi

+0

Vielen Dank für Ihre schnelle Antwort. Ich habe 'Add-Migration MyFirstMigration' ausgeführt, welches (hoffentlich) die Blogs-Tabelle für mich erstellt hat. Ich habe also einen 'Migrations'-Ordner mit drei Migrationsdateien drin. – Crix

+0

Deinstallieren Sie Ihre App von Ihrem System (Start -> Rechtsklick auf Ihre App -> Deinstallieren) und dann durch VS. –

Antwort

0

Das Problem scheint aufgrund der erstellten CS-Dateien zu sein. Wenn Sie die drei Dateien in .vb-Dateien konvertieren, werden die gewünschten Tabellen erstellt und in der Tabelle EFMigrationsHistory wird ein Eintrag erstellt. Ich habe die folgenden Dateien manuell von cs zu vb konvertiert:

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

Und die cs-Dateien aus dem Projekt übernommen und der Vb hinzugefügt. Wenn jemand jetzt weiß, wie man den Befehl add-migration für vb ausführt, wäre das sehr hilfreich.

Verwandte Themen