Я хочу, чтобы создать коллекцию царства в список, а затем проецировать его. Однако это немедленно вызывает ошибку. Ошибка, которую я получаю, похожа на проблему this, а также this, но, похоже, происходит по другой (неизвестной) причине, так как кажется, что ответы по этим двум вопросам не относятся к моему состоянию (я использую более новую версию Realm, и я не использую вызов доступа к свойствам в предикате лямбда).Царство в форматах Xamarin: Еще один «rhs двоичного оператора« Equal »должен быть константным или замыкающим выражением« issue
Я использую свою коллекцию царства для создания другого типа. Я знаю, что текущая версия Realm (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)`
Что-то отметить, и я понятия не имею, если это имеет значение или нет, но свойство InventoryListId
в моей статье .Where()
имеет тип int?
. Должен ли это?
Использование Realm Xamarin v0.81.0 на формах/Android
Сейчас я расскажу об этом позже. Благодарю. – Britton
спасибо, отлично сработало – Britton
почему нет любви к моему вопросу? :) – Britton