レルムコレクションをリストにキャストし、それを投影したいとします。ただし、これを行うとすぐにエラーが発生します。私が受け取っているエラーはthisの問題に似ていますが、またthisですが、この2つの質問の回答が私の条件に当てはまらないので、別の(未知の)理由で起きているようです新しいバージョンのRealmと私は述語ラムダでプロパティアクセサコールを使用していません)。Xamarinフォームのレルム:別の "2項演算子のrhs"等しい "は定数またはクロージャ変数式でなければなりません"問題
私のレルムコレクションを使用して別のタイプに投影しています。レルム(0.81.0)の現在のバージョンは.Select()
をサポートしていないので、.ToList()
を呼び出してから投写していることを知っています。スタックトレースは、例外の起点が.ToList()
コールであることを示しています。
マイコード:
private void BuildAndApplyBindingContext(int listId)
{
realm.All<MemberInventoryItem>()
.Where(i => i.InventoryListId == listId)
.ToList()
.Select(i => new ItemListEntryViewModel {
Id = i.InventoryItemId,
Type = i.IsAcquired ? InventoryType.Item : InventoryType.UnacquiredListItem,
Name = i.Item,
IsAcquired = i.IsAcquired,
SubText = UiHelper.GetLocationString(i),
BadgeText = UiHelper.GetBadgeText(i),
ImageRef = UiHelper.SetMissingImage(i.ImageUrl),
ExpiresDate = i.ExpiresDate,
ShowNoticeText = i.ExpiresDate < DateTime.Now
}).OrderBy(i => i.Name)
.ToList()
};
...
}
私は次のエラーを取得:注意すべき
System.NotSupportedException: The rhs of the binary operator 'Equal' should be a constant or closure variable expression.
Unable to process `Convert(value(Prepify.App.Pages.Inventory.ListDetail.DetailTab+<>c__DisplayClass7_0).listId)`
は何かを、それが重要かどうかはわかりませんが、私の.Where()
句のプロパティInventoryListId
タイプはint?
です。これは問題でしょうか?フォーム上のレルムXamarinのv0.81.0を使用して
/Androidのあなたは、あなたの質問でこれを含めるように考えていること
私はこれを今日後でお伝えします。ありがとう。 – Britton
ありがとう、それは偉大な働いた – Britton
なぜ私の質問のための愛? :) – Britton