Как использовать фильтр в области, когда данные фильтра удаляются - PullRequest
0 голосов
/ 15 февраля 2019

Я пробовал фильтр IQueryable <> в коллекции областей следующим образом:

public class Configuration
{
    public bool IsFilter { get; set; }

    public IQueryable<Model> ApplyFilter(IQueryable<Model> collection)
    {
        var filterCollection = collection;

        filterMessages = filterMessages.Where(IsFilter || !IsFilter && w.IsFilter);

        return filterCollection;
    }
}

И когда я использую ApplyFilter, я получу NotSupportedException

Я думаю, что это произошло, потому что объектиз Configuration уже утилизированы и собраны.

Как я могу использовать подобный фильтр?

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Обратите внимание, что в настоящее время свойство должно находиться слева от условия.Это означает, что

var oldDogs = realm.All<Dog>().Where(dog => 7 < dog.Age); // INVALID query, do not copy
is illegal and would have to be changed into the equivalent

var oldDogs = realm.All<Dog>().Where(dog => dog.Age > 7); // Fixed

https://realm.io/docs/dotnet/latest/api/linqsupport.html

Спасибо @ SushiHangover

Но я думаю, что "Царство" должно дать сообщение с описанием.

0 голосов
/ 15 февраля 2019

Если вы просто пытаетесь отфильтровать вашу модель Realm по свойству bool, содержащему его, вы используете Linq Where (Where(model => model.IsFilter == IsFilter))

Пример:

public class Configuration
{
    public bool IsFilter { get; set; }

    public IQueryable<ItemModel> ApplyFilter(IQueryable<ItemModel> realmQuery)
    {
        return realmQuery.Where(model => model.IsFilter == IsFilter);
    }
}

ПримерИспользование:

// Assuming you have an `Configuration` instance already created:
configuration.IsFilter = true;
realmList.ItemsSource = configuration.ApplyFilter(realmList.ItemsSource as IQueryable<ItemModel>);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...