如何使用Oid从自定义表单中更新XAF中记录的值?

时间:2018-10-21 07:08:48

标签: c# devexpress xaf xpo

如果记录的Oid与我从文本框中获取的输入匹配,我需要从自定义表单更新DevExpress XAF中记录的值。

我已尝试通过以下代码使用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 :(得分:1)

我想问题出在UnitofWork连接上。您发布的代码暗示将使用默认的数据分析器,因此xpo将为默认的数据层创建一个新的AccessDb,并将搜索当然找不到的对象,因为这是一个空数据库。由于您尚未发布有关此自定义表单所在位置的详细信息,因此我认为它位于同一Xaf应用程序中,并且您已使用操作来显示它。因此,我建议您将Xaf应用程序实例传递给表单并创建一个对象空间

objectspace=application.CreateObjectSpace()

使用该objectSpace而不是UnitOfWork查询和更新记录。