我正在使用带有本地SQLite数据库的Visual Studio中的Xamarin.Forms PCL编写移动应用程序。我正在使用SQLite.net-PCL Async插件,因为sqlite-net-pcl一直在崩溃我的应用程序。
我可以很好地查询表格,但我无法弄清楚如何查询视图。
[Table("pitchers")]
public class Pitcher
{
[PrimaryKey, AutoIncrement, Column("id")]
public ushort Id { get; set; }
[Column("first_name")]
public string FirstName { get; set; }
[Column("last_name")]
public string LastName { get; set; }
[Column("uniform_number")]
public byte UniformNumber { get; set; }
}
public Task<List<Pitcher>> GetAllPitchersAsync()
{
return dbConn.Table<Pitcher>().OrderBy(i => i.LastName).ToListAsync();
}
我有一个名为&#34; joined_pitcher_log&#34;我试图使用相同的方法进行查询。我为它创建了一个模型并使用相同的语言(除了order by)来查询,但我一直收到错误:
SQLite.Net.SQLiteException: no such table: joined_pitcher_log
1)从我为视图创建的模型中删除表属性。没有视图属性可将其替换为。
2)使用 dbConn.QueryAsync 而不是 dbConn.Table 直接使用SQL查询视图。
3)寻找dbConn的其他属性和方法。与视图无关。
如何查询视图?
我也可以在我的代码中编写SQLite View查询,但后来我不知道如何引用多个模型,这是一个不同的问题。我此时会采取任何一种解决方案(查询视图或在我加入的多个表/模型上编写查询)
答案 0 :(得分:1)
从视图中获取数据的唯一方法是使用SQLite-Net的Query或QueryAsync方法。只需创建一个类来保存返回的数据。
db.Query<MyReturnType> ("select * from MyView");
或
await db.QueryAsync<MyReturnType> ("select * from MyView");