我正在使用Sqlite.Net Extensions库从我的数据库中获取对象。
我有一个列表,Id's
我想从我的列表包含该 ID 的数据库中获取所有对象。
我有以下内容:
var filteredCalls = listOfIds;
var conn = Databsae.Connection;
var NewCalls = conn.GetAllWithChildren<Call>(x => filteredCalls.Any(y => y == x.Id));
但是此代码返回错误:
[错误] 致命的未处理异常:System.Reflection.TargetInvocationException:调用目标已引发异常。---> System.NotSupportedException: 无法编译: Lambda 08-30 15:46:57.210 E/mono-rt (16849): 在 SQLite.Net.TableQuery
1[T].CompileExpr (System.Linq.Expressions.Expression expr, System.Collections.Generic.List
1 queryArgs) [0x007aa] in :0 08-30 15:46 :57.210 E/mono-rt (16849): 在 SQLite.Net.TableQuery1[T].CompileExpr (System.Linq.Expressions.Expression expr, System.Collections.Generic.List
1 queryArgs) [0x001a5] in :0 08-30 15:46:57.210 E/mono-rt (16849): 在 SQLite.Net.TableQuery1[T].GenerateCommand (System.String selectionList) [0x0006d] in <filename unknown>:0 08-30 15:46:57.210 E/mono-rt (16849): at SQLite.Net.TableQuery
1 [T].GetEnumerator () [0x00008] in :0 08-30 15:46:57.210 E/mono-rt (16849): 在 System.Collections.Generic.List1[T]..ctor (IEnumerable
1 个集合)[0x00073] 在 /Users/builder/data/lanes/3540/1cf254db/source/mono/external/referencesource/mscorlib/system/collections/generic/list.cs:98 08-30 15:46:57.210 E /mono-rt (16849): 在 System.Linq.Enumerable.ToList[TSource] (IEnumerable1 source) [0x00011] in /Users/builder/data/lanes/3540/1cf254db/source/mono/external/referencesource/System.Core/System/Linq/Enumerable.cs:835 08-30 15:46:57.210 E/mono-rt (16849): at SQLiteNetExtensions.Extensions.ReadOperations.GetAllWithChildren[T] (SQLite.Net.SQLiteConnection conn, System.Linq.Expressions.Expression
1 过滤器,布尔递归) [0x00015] 在 /Users/redent/Documents/workspace/sqlite-net-extensions/SQLiteNetExtensions/Extensions/读取操作.cs:60
那么我应该如何在GetAllWithChildren
不崩溃的情况下使用该方法呢?文档非常稀疏
额外的
这是实现该方法的行
Sqlite 中可能不支持 lambda 表达式,如此处所述,如果是这种情况,替代方案是什么/应该如何使用这种方法?