版本6.1中不存在属性[PXNotPersistable]

时间:2017-06-23 19:12:52

标签: acumatica

我正在将自定义项目从版本5.3.2936升级到版本6.10.0755。我遇到了一个属性:[PXNotPersistable],显然已经不存在了。我不知道这个属性是做什么的,或者是否有替换。它用于装饰PXSselectJoin BQL语句。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

PXNotPersistable属性已从Acumatica框架中完全删除,主要是因为它未在Acumatica ERP解决方案中的任何位置使用。

以下是PXNotPersistableAttribute的实现:

public sealed class PXNotPersistableAttribute : PXCacheExtensionAttribute
{
    protected override void AddHandlers(PXCache cache)
    {
        cache.RowPersisting += (sender, args) => args.Cancel = true;
    }
}

正如您可能已经注意到的那样,该属性非常基础且没有做太多的事情:仅阻止将主数据视图DAC的修改记录保存到数据库中。

假设您有一个自定义数据视图,声明如下。 5.3:

[PXNotPersistable]
public PXSelectJoin<MyDacA, 
    LeftJoin<MyDacB, On<MyDacB.someField, Equal<MyDacA.someField>>>> DataView;

对于ver。 6.1,PXNotPersistableAttribute可以简单地替换为 MyDacA _RowPersisting处理程序(因为 MyDacA 是我们数据视图的主要DAC,只有对此DAC所做的更改才会保存到数据库中):

public void MyDacA_RowPersisting(PXCache sender, PXRowPersistingEventArgs e)
{
    e.Cancel = true;
}