Reallm .Net Linq Строковые операции - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть список кодов местоположения, которые являются объединением BUILDING / ROOM, т. Е. "BLD23223019", где первые 5 символов - это здание. Я выделяю строительный код из строки и отображаю его в одном списке, чтобы пользователь мог выбрать, который затем переносит пользователя в список комнат в этом здании. Поэтому я передаю строительный код в список комнат, чтобы отфильтровать комнаты, и делаю это следующим образом:

 _realm = Realm.GetInstance(RealmInstance.RealmPath);
        try
        {
            _locations = _realm.All<Building>().Where(x => x.BuildingCode.Contains(_room.RoomCode)).ToList();
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            throw;
        }

        ListViewLocations.ItemsSource = _locations;

но это не дает мне никаких результатов, вместо этого я получаю целевую ошибку вызова, и внутреннее исключение - «Этот объект принадлежит закрытой области». Это также происходит, если я использую «Equals (_room.RoomCode)». Я не могу понять, почему область будет закрыта только из приведенного выше кода.

Я новичок в Царстве, поэтому, возможно, я делаю что-то не так, если кто-нибудь может указать мне правильное направление, это будет очень цениться.

Это внутреннее исключение, которое выдает приведенный выше код

at Realms.NativeException.ThrowIfNeeded (System.Func`2 [T, TResult] переопределить) [0x0000a] в /Users/realm/jenkins/workspace/realm_realm-dotnet_PR-1775/Realm/Realm/Native/NativeException.cs:57 в Realms.MarshalHelpers.GetString (Realms.MarshalHelpers + NativeCollectionGetter getter) [0x0002b] в /Users/realm/jenkins/workspace/realm_realm-dotnet_PR-1775/Realm/Realm/MarshalHelpers.cs:55 в Realms.ObjectHandle.GetString (System.IntPtr propertyIndex) [0x00013] в /Users/realm/jenkins/workspace/realm_realm-dotnet_PR-1775/Realm/Realm/Handles/ObjectHandle.cs:258 в Realms.RealmObject.GetStringValue (System.String propertyName) [0x00000] в /Users/realm/jenkins/workspace/realm_realm-dotnet_PR-1775/Realm/Realm/RealmObject.cs:139 в AsssetMan.Models.Buildings.get_BuildingCode () [0x00014] в D: \ Projects \ AssetManRealm \ AssetMan \ AssetMan \ Models \ Buildings.cs: 8
at (обёртка, управляемая на родной) System.Reflection.MonoMethod.InternalInvoke (System.Reflection.MonoMethod, объект, объект [], System.Exception &) в System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder связыватель, параметры System.Object [], System.Globalization.CultureInfo культура) [0x00032] в <43dbbdc147f2482093d8409abb04c233>: 0

1 Ответ

0 голосов
/ 12 ноября 2018

Благодаря @mjwills я понял это. Первый комментарий с использованием var bob в расширении linq работал, если я использовал литерал. Это означало, что должна быть проблема с переменной или способом передачи BuildingCode на страницу RoomCode. Сообщение «Царство закрыто», или что-то в этом роде, сначала поставило меня в тупик, затем я вспомнил, что объекты Царства «Живы», и когда я закрывал _реал на предыдущей странице, строительный объект, который я передавал Страница RoomCode больше не была доступна. Таким образом, я создал объект здания и, когда здание было выбрано из списка зданий, скопировал в него код здания и передал его поиску RoomCode, чтобы он все еще был доступен после закрытия Царства. Спасибо @ mjwills.

...