在ASP.NET中,我们总是将一个对象或集合存储到缓存中,即当我们想要使用它们时,我们可以判断该对象或集合是否已经存在于缓存中,如果存在,则从缓存中检索,如果不存在,则从数据库中检索。EF是否有类似的机制,在调用context.ObjectSet.AddObject( object )或调用方法将对象附加到context后,将其保存到缓存中,当我们要检索该对象时,首先判断该对象是否已经存在于缓存中。有人能帮上忙吗?
发布于 2012-03-12 17:06:12
您必须查询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 forhttps://stackoverflow.com/questions/9662389
复制相似问题