如何查询SQLite.net中的View?

时间:2017-05-12 16:53:54

标签: c# visual-studio linq sqlite xamarin

我正在使用带有本地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查询,但后来我不知道如何引用多个模型,这是一个不同的问题。我此时会采取任何一种解决方案(查询视图或在我加入的多个表/模型上编写查询)

1 个答案:

答案 0 :(得分:1)

从视图中获取数据的唯一方法是使用SQLite-Net的Query或QueryAsync方法。只需创建一个类来保存返回的数据。

db.Query<MyReturnType> ("select * from MyView");

await db.QueryAsync<MyReturnType> ("select * from MyView");