Xamarin と SQLiteNet を ORM として使用しています。
データ層クラスには、以下のメソッドがあります。
filter = ri => ri.ItemVersioniId == itemVersionId;
メソッドは、Id に一致するレコードを取得しています。ラムダ式がハードコードされている場合、「フィルター」パラメーターを使用する代わりに、同じロジックであってもはるかに高速です。
フィルターをパラメーターとして渡すことができますが、それでも良好なパフォーマンスが得られます。何かアドバイスはありますか?
public virtual List<ResourceItem> GetResourceItems (string itemVersionId, Func<ResourceItem,bool> filter ){
//var t = db.Table<ResourceItem> ().Where (ri => ri.ItemVersionId == itemVersionId); --* this line is 10 times faster
var t = db.Table<ResourceItem> ().Where (filter); --* this line is 10 times slower
return new List<ResourceItem> (t);
}