我想为XPO类完成一个简单的规则。
情况如下: - 我有一个车辆类:
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类:
public class MeterEntry:BaseObject { public MeterEntry(会话会话) :基地(会话) { } public override 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中,我想要当前对象的日期smtng的值,如:TargetObject.Date,但它不起作用,有什么想法吗?
答案 0 :(得分:0)
您需要使用^字符。
RuleCriteria("MeterValue >= Vehicle.MeterEntries[Date <= ^.^.Date].Max(MeterValue)")]
在https://documentation.devexpress.com/#CoreLibraries/CustomDocument4928了解有关家长关系遍历运算符的更多信息