为什么缓存的实体会突然跳转?

时间:2012-12-07 09:33:43

标签: c# linq entity-framework caching lambda

我有:

var c = cboCustomer.SelectedItem as Customer;
var t = cboTrailer.SelectedItem as Trailer;
using (var db = new CAPSContainer())
{
   db.Attach(c); --> Tracker has now 1 entity
   db.Attach(t); --> Tracker has now 2 entities
   c.Trailers.Remove(t); --> Tracker has now 29! entities loaded
   db.DeleteObject(t);
   db.SaveChanges();
}

我试图理解这个加载/缓存是如何工作的,因为我遇到了一些与之相关的其他问题,为什么缓存量突然跳跃的任何想法?

我使用的是EF 5.0。

1 个答案:

答案 0 :(得分:0)

您的默认配置可能设置了LazyLoadingEnabled。因此,子列表在访问之前不会被加载,请参阅此文章以获取更详细的说明:

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/reading-related-data-with-the-entity-framework-in-an-asp-net-mvc-application

顺便说一句,如果你只是想在不加载批次的情况下删除一个,那么你可以像Boomer所说的那样使用DeleteObject。