SQLiteAsyncConnection.QueryAsync不从列

时间:2017-06-07 17:21:41

标签: uwp xamarin.forms sqlite-net

我在Xamarin Forms UWP项目中使用SQLite-net-PCL v.1.3.3,并且无法理解这种行为;不知道这是一个我还没有理解的错误。我想我应该能够从表中查询列(FnImage,在下面的例子中),并填充一组本地对象(下面的Test),其中Test对象集合中的每个实例都有一行中的列值在FnImage表中。出于内存管理的原因,我不想仅仅从FnImage表创建一个本地行集合;我的结果集应该只包括我正在查询的列中的数据。

Task.Run(async () =>
{
var v = await mySQLiteAsyncConnection.QueryAsync<Test>("select 'Name', 'DbBytesThumbnail' from FnImage where 'Id' > ? ", 0);
...
});

public class Test {
public byte[] DbBytesThumbnail { get; set; }
public string Name { get; set; }
}

代码确实创建了一个包含单个Test实例的集合(给定FnImage表中的数据应该有更多),并且该单个实例中的两个属性都为null。我已经尝试将'select'Name'映射为Name,将'DbBytesThumbnail'映射为DbBytesThumbnail ...',更改本地Test对象中的属性名称和查询中的“as”子句,更改了查询(“;”最后,有和没有单引号等...)花了好几个小时没有成功。

FnImage表存在,类型映射是正确的,我在其他地方使用这些类/表没有问题(使用myAsyncConnection.Table()语法)。任务不进入故障状态/不抛出异常。这是SQLite-net-PCL的问题,还是我用它做的事情?

欢迎的想法和见解......

1 个答案:

答案 0 :(得分:2)

我已经测试了您的代码并重现了您的问题。问题是您的问题 SQL语句格式错误。如果要查询表中的列,请尝试使用以下SQL语句。

"select Name, DbBytesThumbnail from FnImage where Id > ? "
相关问题