我有一個實體類型,我們稱之爲交易,通過實體框架版本1.我已經添加了以下屬性創建:做一個LINQ to實體時,在實體填充屬性查詢
public partial class Transaction
{
public int CurrentMaxRevisionNumber { get; set; }
}
我有以下查詢:
public List<Transaction> GetTransactions(DateTime startDate, DateTime endDate)
{
var query = from t in Repository.Transaction
let currentMaxRevisionNumber =
Repository.Transaction.Where(t1 => t1.TransactionId == t.TransactionId)
.Max(t1 => t.RevisionNumber)
where t.StartDate >= startDate
&& t.EndDate < endDate)
select t;
return query.ToList();
}
的業務規則是什麼,我們試圖完成如下:
- 對原始日期交易的新紀錄應該表示它一直是一個代碼創建軟刪除d修訂號增加。
- 交易的新記錄將在新日期中創建,修訂號增加。
的問題是,確定何時將被處理的交易順序一天一時間不斷進行,交易正在從日期日期移動,有時回原來的那些過程。這可能會導致給定交易的最大修訂版本號將是特定日期的最大修訂版號,而不是交易的最大修訂版號。這就是我試圖在查詢中執行「let」的原因。
現在的問題:
- 如何填充我在部分類中使用查詢創建的CurrentMaxRevisionNumber屬性?
- 是否有可能的另一種方式,我可以做到這一點,而不必爲每個事務做一個查詢,因爲有可能在任何給定的日期是幾百?
感謝您的幫助。
IMO你的模型是太混亂了。你應該完全放棄這一個,從不同的角度來處理整個事情。 – Euphoric