Как обновить значение записи в XAF, используя Oid, из пользовательской формы? - PullRequest
0 голосов
/ 21 октября 2018

Мне нужно обновить значение записи в DevExpress XAF из пользовательской формы, если Oid записи совпадает с вводом, полученным из текстового поля.

Я попытался использовать UnitofWork с помощью следующего кода, но это не работает:

        UnitOfWork uow = new UnitOfWork();

        CriteriaOperator op = CriteriaOperator.Parse("Oid = ?", ReceivedTextBox.Text);
        Bilty bilty = uow.FindObject<Bilty>(op);

        if (bilty == null) return;
        bilty.Received = true;

        uow.CommitChanges();

Может кто-нибудь сказать мне, что я здесь делаю неправильно?Я пытался найти решение на официальном форуме DevExpress, но это лучшее, чего я мог достичь.

1 Ответ

0 голосов
/ 24 октября 2018

Думаю, проблема в соединении UnitofWork.Размещенный вами код подразумевает, что используется модуль данных по умолчанию, поэтому xpo создаст новый AccessDb для уровня данных по умолчанию и будет искать объект, который, конечно, не может быть найден, поскольку это пустая база данных.Поскольку вы не опубликовали сведения о том, где находится эта пользовательская форма, я предполагаю, что она находится в том же приложении Xaf, и вы использовали действие для ее отображения.Поэтому я предлагаю вам передать экземпляр приложения Xaf в форму и создать пространство объектов

objectspace=application.CreateObjectSpace()

, чтобы использовать это пространство объектов для запроса и обновления записи вместо UnitOfWork.

...