现在我有一张桌子,我正在进入开钻日期和发布日期。我想验证当添加新行时,它会在当前表中查找是否有任何其他spud日期,以确保新的spud日期晚于之前的spud并且还要验证它之前是否有发布日期它增加了一个新行。有人知道怎么做吗。
if (this.ReleaseDate < SpudDate)
{
results.AddPropertyError("Release Date cannot be before Spud Date");
}
我在验证功能中有这个代码,但这只是在输入当前项目时。我还需要回过头来查看其他记录进行比较,就像我说的那样。
partial void ReleaseDate_Validate(EntityValidationResultsBuilder results)
{
IDataServiceQueryable<tblWellRigJunction> orders = (from o in this.DataWorkspace.RigStatusData.tblWellRigJunctions
orderby o.ReleaseDate
where WellID.Equals(this.WellID)
select o).Take(1);
foreach (tblWellRigJunction ord in orders)
{
if (ord.ReleaseDate.ToString() == "")
{
results.AddPropertyError("Previous Release Date entered is still null");
return;
}
int result = DateTime.Compare(ord.SpudDate, this.SpudDate);
if (result > 0)
{
results.AddPropertyError("Previous Spud Date is greater");
return;
}
}
答案 0 :(得分:1)
您可以创建一个简单的查询,该查询获取表中的所有记录并按spud日期对它们进行排序。如果您按降序对spud日期进行排序,则可以与.FirstOrDefault()
进行比较。
if (SpudDate < this.MySpudDates.FirstOrDefualt().SpudDate)
{
results.AddPropertyError("New Spud Date cannot be before Previous Spud Date");
}