使用EF core获取SQLite的sequence 时一直有此错误:Microsoft.Data.Sqlite.SqliteException:“SQLite Error 1: 'no such column: t.Value'.”
以下是出错代码:
var id = JVDbContext.Instance.Database.SqlQuery<int>($"SELECT seq+1 FROM sqlite_sequence WHERE name='deviceInfo'").First();
通过不断的尝试后,发现取消First()就是正常的,一旦要使用First()方法就会异常。
询问了下GPT,其给出的原因如下:
按其所述将上述代码改为了如下,多次测试没有问题.
var id = JVDbContext.Instance.Database.SqlQuery<int>($"SELECT seq+1 FROM sqlite_sequence WHERE name='deviceInfo'").ToList().First();
另上述代码中,若将
name='deviceInfo'
采用"{}" 插值的方式,也是有问题的,报错如下:
报此错误的代码如下:
string tableName = "deviceInfo"; var id = JVDbContext.Instance.Database.SqlQuery<int>($"SELECT seq+1 FROM sqlite_sequence WHERE name='{tableName}'").ToList().First();
不得以只能将其写成硬代码。各位若有更好的解决办法,望留言。
望本文能帮助各位避此大坑……
标签:SqliteException,Sqlite,name,sequence,代码,no,deviceInfo,SQLite,First From: https://www.cnblogs.com/chengcanghai/p/17503592.html