XPO 的复杂规则 class
Complex rule for XPO class
我想为 XPO 完成一个简单的规则 class。
情况如下:
- 我有一辆车 class :
public class Vehicle : BaseObject
{
public Vehicle(Session session)
: base(session)
{
}
public override void AfterConstruction()
{
base.AfterConstruction();
}
//...properties
[Association, DevExpress.Xpo.Aggregated]
public XPCollection<MeterEntry> MeterEntries
{
get { return GetCollection<MeterEntry>("MeterEntries"); }
}
}
还有一个 MeterEntry class :
public class MeterEntry:BaseObject
{
public MeterEntry(会话会话)
:基础(会话)
{
}
public 覆盖 void AfterConstruction()
{
base.AfterConstruction();
}
private int _MeterValue;
private DateTime _Date;
public int MeterValue
{
get
{
return _MeterValue;
}
set
{
SetPropertyValue("MeterValue", ref _MeterValue, value);
}
}
public DateTime Date
{
get
{
return _Date;
}
set
{
SetPropertyValue("Date", ref _Date, value);
}
}
[Association]
public Vehicle Vehicle { get; set; }
}
我试过这条规则:
RuleCriteria("MeterValue >= Vehicle.MeterEntries[Date <= xxx ].Max(MeterValue)")]
在 xxx 中,我想要当前对象的 Date smtng 的值,例如:TargetObject.Date 但它不起作用,有什么想法吗?
您需要使用 ^ 字符。
RuleCriteria("MeterValue >= Vehicle.MeterEntries[Date <= ^.^.Date].Max(MeterValue)")]
查看更多关于 父关系遍历运算符 的信息:https://documentation.devexpress.com/#CoreLibraries/CustomDocument4928
我想为 XPO 完成一个简单的规则 class。
情况如下: - 我有一辆车 class :
public class Vehicle : BaseObject
{
public Vehicle(Session session)
: base(session)
{
}
public override void AfterConstruction()
{
base.AfterConstruction();
}
//...properties
[Association, DevExpress.Xpo.Aggregated]
public XPCollection<MeterEntry> MeterEntries
{
get { return GetCollection<MeterEntry>("MeterEntries"); }
}
}
还有一个 MeterEntry class :
public class MeterEntry:BaseObject { public MeterEntry(会话会话) :基础(会话) { } public 覆盖 void AfterConstruction() { base.AfterConstruction(); }
private int _MeterValue; private DateTime _Date; public int MeterValue { get { return _MeterValue; } set { SetPropertyValue("MeterValue", ref _MeterValue, value); } } public DateTime Date { get { return _Date; } set { SetPropertyValue("Date", ref _Date, value); } } [Association] public Vehicle Vehicle { get; set; }
}
我试过这条规则:
RuleCriteria("MeterValue >= Vehicle.MeterEntries[Date <= xxx ].Max(MeterValue)")]
在 xxx 中,我想要当前对象的 Date smtng 的值,例如:TargetObject.Date 但它不起作用,有什么想法吗?
您需要使用 ^ 字符。
RuleCriteria("MeterValue >= Vehicle.MeterEntries[Date <= ^.^.Date].Max(MeterValue)")]
查看更多关于 父关系遍历运算符 的信息:https://documentation.devexpress.com/#CoreLibraries/CustomDocument4928