1

我有 :

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。

4

1 回答 1

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-应用

顺便说一句,如果你只是想删除一个而不加载很多,那么你可以像 Boomer 所说的那样使用 DeleteObject 。

于 2012-12-07T10:03:28.667 回答