2017-07-18 2 views
1

Ich habe eine Datenbankdatei für ein Xamarin-Projekt mithilfe des folgenden Handbuchs bereitgestellt. http://arteksoftware.com/deploying-a-database-file-with-a-xamarin-forms-app/Xamarin sqlite Mapping-Modelle in die Datenbanktabelle

Ich habe eine Modellklasse als solche:

[Table ("Person")] 
public class Person 
{ 
    [PrimaryKey, AutoIncrement, Column("Id")] 
    public int Id { get; set; } 

    [NotNull, Column("Actor_Id")] 
    public int ActorId { get; set; } 
} 

Wenn ich versuche,

dbConn.Insert(newPerson); 

Ich erhalte SQLite.Net.SQLiteException einen Einsatz im Repository zu tun: Tabelle Person hat Keine Spalte namens ActorId.

Wenn der Spaltenname in der Datenbank Actor_Id lautet, sollte das Attribut [Column] im Modell nicht auf die Tabelle abgebildet werden.

+0

Welche Bibliothek verwenden Sie: SQLite.Net-PCL Oder sqlite-net? – apineda

+0

Ich benutze SQLite.Net-PCL – ClueSelecter

+0

Ich weiß, dass ich den Variablennamen zu Actor_Id ändern kann, um die Tabelle Spalte zu entsprechen, aber ich wollte wissen, ob es möglich ist, es mit einem anderen Namen über das Spaltenattribut zuzuordnen. – ClueSelecter

Antwort

0

Es besteht die Möglichkeit, dass Ihr Telefon/Emulator zuvor mit einer App mit einem älteren Datenbankschema bereitgestellt wurde.

In diesem Fall müssen Sie:

  • die bestehende App auf Ihrem Telefon/Emulator entfernen. Dann sollte der nächste Lauf OK sein, da er mit einem neuen Datenbankschema erstellt wurde. ODER
  • Führen Sie ein Datenbank-Upgrade-Skript durch, um das Schema der aktuellen alten Datenbank zu ändern. Tun Sie dies nur, wenn Ihre App bereits veröffentlicht wurde.
+0

Ich habe die App neu installiert, bekomme aber immer noch den gleichen Fehler. Ich habe zuerst die Datenbankdatei hinzugefügt und dann das Modell erstellt. Die Datenbank wird mit vorhandenen Daten geliefert. – ClueSelecter

0

Ich habe das Problem gefunden, dass ich die SQLite-Bibliothek im Modell verwendet habe. Die Verwendung von SQLite.Net.Attributes ermöglichte die korrekte Zuordnung.

using SQLite.Net.Attributes; 
Verwandte Themen