使用 sqlite-net-pcl 1.8.116 如果我定義一個結構并從中在資料庫中創建一個表,我無法在沒有得到 System.ArgumentException: 'method arguments are incompatible' 的情況下讀回值。我可以制作表格并添加行。只有回讀失敗。
如果我將我的結構變成一個類,它就可以正常作業。我已經查看并查看是否根本不支持結構,但我沒有看到任何表明這一點的東西,甚至其他人也沒有看到同樣的問題。
我創建并使用這樣的資料庫,但失敗了
var db = new SQLiteAsyncConnection(path);
db.CreateTableAsync<Flight>().Wait();
var affected = await db.InsertAsync(new Flight());
var get = await db.Table<Flight>().ToListAsync(); //exception
我可以做同樣的事情,但同樣的例外,使用 sqlQuery 之類的
var flights = await db.QueryAsync<Flight>("select * from Flight where FlightID==?",id);
這篇文章的精簡結構是
public struct Flight
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public long Start { get; set; }
public long End { get; set; }
public string Description { get; set; }
}
如果我將結構更改為類,則沒有問題。結構體是否以某種方式不被支持?
uj5u.com熱心網友回復:
是的,正如您所說,當我們使用 nuget sqlite-net-pcl 1.8.116 時就是這種情況。但是您可以嘗試使用 nuget sqlite-net-pcl 的 1.7.335 版。當我創建一個表并使用 1.7.335 版本插入一些專案時,沒有出現這樣的錯誤。
我發布了一個關于這個問題的新問題,你可以在這里跟進:https : //github.com/praeclarum/sqlite-net/issues/1075。
感謝您對 xamarin 的反饋。
此致!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/340590.html
上一篇:Sequelize:通過另一個表與自我的多對多關系?
下一篇:不要將資訊保存在表格中
