当我想要检索仅用于显示的数据时,我应该使用MergeOption.NoTracking吗?

时间:2011-07-02 16:03:11

标签: c# asp.net entity-framework

假设我想在网页上显示一些数据,所以我加载数据:

using (KEntities ctx = new KEntities())
{
    ctx.KSet.MergeOption = MergeOption.NoTracking;

    var items = (from c in ctx.KSet
                 where c.ParentId == 0
                 select new
                 {
                     Title = c.Title,
                     Id = c.Id,                           
                     Subs = ctx.KSet.Where(o => o.ParentId == c.Id)                                      
                 }).ToList();

 }

使用MergeOption.NoTracking有什么好处吗?
如果现在,我什么时候应该使用它?

1 个答案:

答案 0 :(得分:3)

是的,如果您只想要数据,请使用MergeOption.NoTracking。这意味着它们不会存储在跟踪实体以进行更新和删除的图形中。这有助于在内存方面降低性能。