如果记录的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论坛上搜索解决方案,但这是我能达到的最佳效果。
答案 0 :(得分:1)
我想问题出在UnitofWork
连接上。您发布的代码暗示将使用默认的数据分析器,因此xpo将为默认的数据层创建一个新的AccessDb,并将搜索当然找不到的对象,因为这是一个空数据库。由于您尚未发布有关此自定义表单所在位置的详细信息,因此我认为它位于同一Xaf应用程序中,并且您已使用操作来显示它。因此,我建议您将Xaf应用程序实例传递给表单并创建一个对象空间
objectspace=application.CreateObjectSpace()
使用该objectSpace而不是UnitOfWork查询和更新记录。