Ich versuche, zwei Tabellen und eine Beziehung zwischen ihnen in einer Xamarin-Cross-Plattform-Anwendung aufzubauen. Hier ist der Code für die Tabellen:Erstellen von zwei Tabellen mit Beziehung schlägt fehl
[Table("DetailTypes")]
public class DetailType
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Detail { get; set; }
}
und
[Table("DateDetails")]
public class DateDetail
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public int ID_Date { get; set; }
public string Wert { get; set; }
public DateTime Datum { get; set; }
[ForeignKey(typeof(DetailType))]
public int DetailTypeId { get; set; }
[OneToOne]
public DetailType DetailType { get; set; }
}
Die Tabellen in Code erstellt werden, wie folgt:
public ItemDatabase(string dbPath)
{
database = new SQLiteAsyncConnection(dbPath);
database.CreateTableAsync<DateDetail>().Wait(); //Error is thrown here
database.CreateTableAsync<DetailType>().Wait();
}
Bei der Ausführung des Codes ich den Fehler „eine nicht behandelte Ausnahme aufgetreten. " in der markierten Zeile. Die erste Tabelle wird an diesem Punkt erstellt. Was mache ich falsch?
Eine andere Frage: Ist es wichtig, die Tabellen in einer bestimmten Reihenfolge zu erstellen, da sie voneinander abhängig sind?
EDIT:
Stacktrace der Ausnahme (System.NotSupportedException):
bei System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00011] in < 896ad1d315ca4ba7b117efb8dacaedcf >: 0 at System.Threading.Tasks.Task.Wait (System.Int32 Millisekundenzeitlimit, System.Threading.CancellationToken StornierungToken) [0x00043] in < 896ad1d315ca4ba7b117efb8dacaedcf>: 0 bei System.Threading.Tasks.Task.Wait() [0x00000] in < 8 96ad1d315ca4ba7b117efb8dacaedcf>: 0 unter .CODE.Data.ItemDatabase..ctor (System.String dbPath) [0x00028] in D: \ CODE_COPY \ EigeneProjekte \ CN_ _Xamarin ********* \ CODE \ Daten \ ItemDatabase.cs: 22
EDIT 2: Wenn ich einen genaueren Blick auf die Ausnahme, die ich die folgende Meldung finden:
Don't know about XXX.CODE.Models.DetailType
Dies ist verständlich, da die Tabelle DetailType hat nicht An diesem Punkt wurde gebaut. Aber wie soll ich dann Beziehungen über ORM erstellen? Gibt es die Möglichkeit, alle Tabellen gleichzeitig zu erstellen, um sicherzustellen, dass die Beziehungen korrekt sind und keine Tabelle fehlt?
Verwenden Sie einen Versuch/Catch, um die tatsächliche Ausnahme zu erhalten – Jason
Hat diese Ausnahme eine Ursache?Weil es nichts nützliches sagt – redent84
@redent84 Sorry für meine späte Antwort und danke für den Versuch zu helfen. Ich habe meine Frage aktualisiert, könntest du bitte einen Blick darauf werfen? Danke :-) – Chris