在ASP.NET中,我们总是将对象或集合存储到缓存中,当我们想要使用它们时,我们可以判断对象或集合是否已经存在于缓存中,如果存在,我们将检索它从缓存中,如果没有,则从数据库中检索它。在调用“context.ObjectSet.AddObject(object)”或调用方法将对象附加到上下文之后,EF是否具有类似的机制,将其保存到缓存中,当我们想要检索对象时,判断对象是否有先存在于缓存中。有人可以帮忙吗?
答案 0 :(得分:0)
您必须查询ObjectStateManager
以查找它是否已包含您的实体:
var entity = context.ObjectStateManager()
.GetObjectStateEntries(~EntityState.Detached)
.Where(e => !e.IsRelationship)
.Select(e => e.Entity)
.OfType<YourEntityType>()
.FirstOrDefault(...); // uniquely identify entity you are looking for