我有一個可觀察的投標集合,類結構如下。將項目與列表中的其他項目進行比較
public class Bids
{
public DateTime StartDateTimeLocal { get; set; }
public DateTime EndDateTimeLocal { get; set; }
public decimal Bid5 { get; set; }
public decimal Price5 { get; set; }
public decimal Bid4 { get; set; }
public decimal Price4 { get; set; }
public decimal Bid3 { get; set; }
public decimal Price3 { get; set; }
public decimal Bid2 { get; set; }
public decimal Price2 { get; set; }
public decimal Bid1 { get; set; }
public decimal Price1 { get; set; }
}
我有一個觀察的集合
public ObservableCollection<Bid> Bids {get; set;}
投標收集類似於下,
StartDateTimeLocal EndDateTimeLocal Bid5 Price5 Bid4 Price4 Bid3 Price3 Bid2 Price2 Bid1 Price1 2014-02-14 23:00 2014-02-14 23:30 0 0 0 0 0 0 50 10 100 100 2014-02-14 23:30 2014-02-15 00:00 0 0 0 0 0 0 10 300 200 10 2014-02-15 00:00 2014-02-15 00:30 0 0 0 0 0 0 100 30 0 10 2014-02-15 03:00 2014-02-15 01:00 0 0 0 0 0 0 30 100 0 0
我需要驗證觀察集合中的數據是按照規則有效.. 。
- 投標2應該只有一個價值如果出價1有價值。因此,除非出價1,否則出價2中的非零值無效。同樣,bid1,bid2,bid3中的值也沒有問題,但如果bid4沒有值,則bid5中的值無效。
- 投標價格必須保持不變或增加。因此,投標2價格應該等於或大於投標1價格。
在上面的示例, - 第三屆&第四行是不正確的,因爲標段不具有價值,但 標段一樣。
- 第二行是正確的,因爲Bid1有一個值,因此Bid2 的值很好,Bid2> Bid1的價格。雖然第1行是
不正確,因爲出價2的價格是<出價的價格1
有人可以建議一種方法來執行此驗證。
LINQ代表語言集成查詢。它無法爲您執行任何驗證。如果你提供更多的細節,可以選擇。你是否嘗試在創建對象時進行驗證,你是否想要在UI中進行驗證,在插入數據庫行時是否嘗試驗證等? –
對象出價綁定到一個數據網格,我在按鈕單擊執行這些驗證。該對象已存在並且值位於該對象中。如果驗證失敗,我會報告給用戶,如果沒有,則將其保存到數據庫。 –
您是否在嘗試使用LINQ之前嘗試編寫非LINQ驗證? – MarcinJuraszek