我試圖建立兩個表,並在Xamarin它們之間的關係跨plattform應用。下面是表的代碼:建設有關係的兩個表失敗
[Table("DetailTypes")]
public class DetailType
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Detail { get; set; }
}
和
[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; }
}
臺處於代碼創建如下:
public ItemDatabase(string dbPath)
{
database = new SQLiteAsyncConnection(dbPath);
database.CreateTableAsync<DateDetail>().Wait(); //Error is thrown here
database.CreateTableAsync<DetailType>().Wait();
}
運行代碼時出現錯誤「未處理的異常發生「。在標記的行中。第一個表格是在那個時候創建的。我究竟做錯了什麼?
另一個問題是:是重要的建立在一定的順序表,因爲它們依賴於海誓山盟?
編輯:
堆棧跟蹤異常的(System.NotSupportedException):
在System.Threading.Tasks.Task.ThrowIfExceptional(System.Boolean includeTaskCanceledExceptions)[0x00011]在< 896ad1d315ca4ba7b117efb8dacaedcf >:0在System.Threading.Tasks.Task.Wait(System.Int32 millisecondsTimeout,System.Threading.CancellationToken的CancellationToken)[0x00043]在< 896ad1d315ca4ba7b117efb8dacaedcf>:0在System.Threading.Tasks.Task.Wait()[0x00000]在< 8 96ad1d315ca4ba7b117efb8dacaedcf>:0在.CODE.Data.ItemDatabase..ctor(System.String DBPATH)[0x00028]在d:\ CODE_COPY \ EigeneProjekte \ CN_ _Xamarin ********* \ CODE \數據\ ItemDatabase.cs:22
編輯2: 如果我走在例外,我發現下面的消息定睛一看:
Don't know about XXX.CODE.Models.DetailType
這是可以理解的,因爲表DetailType還沒有在這一點上已經建成了。但是,我該如何通過ORM建立關係呢?是否有可能一次創建所有表格以確保關係正確並且沒有表格丟失?
使用try/catch來獲得實際的異常 – Jason
這是否異常有一個原因?因爲它沒有說任何有用的東西 – redent84
@ redent84對不起,我遲到的答案和謝謝你試圖幫助。我已更新了我的問題,請你看看?謝謝:-) – Chris