5

我正在开发一个使用 sqlite 作为数据库的 Windows 应用商店应用程序。我将 SQLite 用于 Windows 运行时和 sqlite-net。尝试从表中获取 Guid 列表,但仅在列表中获取空 guid ({00000000-0000-0000-0000-000000000000})。但是,当仅查询一个 guid 时,它可以正常工作。

我的代码如下:

async void SyncSurveys()
    {
        SQLiteConnection _db = new SQLiteConnection(Path.Combine(ApplicationData.Current.LocalFolder.Path, "SurveyDB"));

        var localSurveys = (from s in _db.Table<Survey>()
            select s.SurveyGuid).ToList();

        ...
    }

我也尝试了以下格式的查询,但它都不起作用:

var localSurveys = _db.Table<Survey>().Select(s => s.SurveyGuid).ToList();

但是,如果我使用以下查询,仅获取一个仅用于调试目的的 guid,则效果很好:

var localSurvey = db.Table<Survey>().FirstOrDefault().SurveyGuid;

在不工作的情况下,列表的计数与表的行计数匹配。有谁知道为什么这不适用于列表版本?

4

2 回答 2

2

这不是一个答案,但它可能会让你走上正确的道路。我注意到有一个选项可以添加到连接字符串中,该选项设置 GUIDS 是否以二进制形式存储

数据源=c:\mydb.db;版本=3;BinaryGUID=False;

更多信息https://www.connectionstrings.com/sqlite/

于 2014-05-15T22:51:24.057 回答
-1

我认为问题应该是基本脚本命令是否正确编写。它可能是一个错误数据库。

于 2014-03-14T12:15:53.127 回答