在LINQPad 4中,当我尝试运行以下代码时:
void Main()
{
using (var conn = new SQLiteConnection(@"C:\linqToSqlite"))
{
var query = new SQLiteCommand(conn);
query.CommandText = "SELECT * FROM MyTable";
var result = query.ExecuteQuery<MyTable>();
}
}
我收到以下错误:
'System.Data.SQLite.SQLiteCommand'不包含'ExecuteQuery'的定义,并且没有扩展方法'ExecuteQuery'接受类型'System.Data.SQLite.SQLiteCommand'的第一个参数可以找到(按F4到添加using指令或程序集引用)
其他参考文献:
System.Data.Linq.dll
System.Data.SQLite.dll
System.Data.SQLite.Linq.dll
其他命名空间导入:
System.Data.Linq
System.Data.SQLite
System.Data.SQLite.Linq // Cannot add this, cleanup removes it.
I've also found documentation,其中讨论了使用SQLiteCommand.ExecuteQuery
方法。那是我见过这个命令的唯一地方。
答案 0 :(得分:2)
不要认为此功能是内置的。每当我需要对sqlite数据库执行直接sql查询时,我都会向Dapper添加一个Nuget引用并添加名称空间Dapper。这允许我做类似的事情。
string query = "Select * from MyTable" ;
var results = this.Connection.Query<MyTable>(query).ToList();
或
using (var conn = new SQLiteConnection(@"C:\linqToSqlite"))
{
string query = "Select * from MyTable" ;
var results = conn.Query<MyTable>(query).ToList();
}
答案 1 :(得分:1)
从您给定的文档中我发现您可以考虑使用它来引用 RebornBuddy.exe版本:1.0.233.0(1.0.233)。
这是一张图片:
而SQLLite.dll的ExecuteQuery()只是不使用“泛型类型”。因此它仅用于一个共同的ado.net。如果你坚持在LINQ中使用它(如果实现的话)。也许你可以使用像“SqlLiteDataContext的ExecuteQuery”这样的东西。
有关SqlLiteDataContext的ExecuteQuery的更多信息,请在详细信息中查看: https://msdn.microsoft.com/en-us/library/bb361109(v=vs.110).aspx