簡體   English   中英

如何使用Sqlite.Net擴展篩選器

[英]How do I use Sqlite.Net Extensions Filter

我正在使用Sqlite.Net擴展庫從數據庫中獲取對象。

我有一個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] :: 0 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)[0x001a5] :: 0 08-30 15:46:57.210 E / mono-rt(16849):在SQLite.Net.TableQuery 1[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 ]::0 08-30 15:46:57.210 E / mono-rt(16849):位於System.Collections.Generic.List 1[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] (IEnumerable 1 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 / Users / redent中的1 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] /Documents/workspace/sqlite-net-extensions/SQLiteNetExtensions/Extensions/ReadOperations.cs:60

那么我應該如何使用GetAllWithChildren方法而不會崩潰? 該文檔非常稀疏

額外

是實現方法

為說明可能lambda表達式不SQLite中支持這里 ,如果是這樣的話,什么是另類/是如何被使用這個方法應該?

因此,看起來Sqlite.Net無法應付嵌套在另一個lamdba表達式中的Lambda表達式。 因此,我將過濾器更改為:

var NewCalls = conn.GetAllWithChildren<DiaryCall>(x => filteredCalls.Contains(x.Id));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM