【发布时间】:2021-12-11 01:17:13
【问题描述】:
使用 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; }
}
如果我将结构更改为类,则没有问题。结构是不是像这样不被支持?
【问题讨论】:
标签: sqlite xamarin.forms