0
我一遍又一遍地提到:編寫代碼來創建需要填充的子關聯(即FK引用)的實體實例(即將行填充到數據庫中)。如何爲EF實體類型實施(乾淨地)緩存?
示例:
namespace EomApp1.Formss.AB2.Model
{
public class UnitConversionSource : EomApp1.Formss.AB2.Model.IUnitConversionSource
{
IEnumerable<UnitConversion> IUnitConversionSource.UnitConversions(DirectAgentsEntities model)
{
yield return new UnitConversion
{
Coefficient = 1,
FromUnit = model.Units.First(c => c.Name == "USD"),
ToUnit = model.Units.First(c => c.Name == "USD"),
DateSpan = new DateSpan
{
FromDate = DateTime.Now,
ToDate = DateTime.Now.Add(TimeSpan.FromHours(1))
}
};
}
}
}
希望的:在給定的有效期限的第一執行(比如說10秒)model.Units.First(c => c.Name == "USD")
執行時,該實體是取出從數據庫中,但隨後(有效期限內)來自一個存儲器高速緩存中。
目標:防止循環插入一百萬行,使相同的選擇查詢一百萬次。
我很感興趣,特別是在一個非侵入性解決方案中,它不影響我在示例中編寫代碼的方式。這是(希望)本着建築立場關注分離的最佳實踐精神。
(PS:我不知道,如果我使用術語非侵入性的是標準的語義 - 讓我知道,如果有更好的方法來prase本)
你對於不確定問題的評論 - 你的意思是你無法想象它會永遠存在於任何環境中,我應該首先問自己我做錯了什麼? –