C# 当我只想检索用于显示的数据时,是否应该使用MergeOption.NoTracking?

C# 当我只想检索用于显示的数据时,是否应该使用MergeOption.NoTracking?,c#,asp.net,entity-framework,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 {

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

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有什么好处吗?

如果现在,我应该什么时候使用它

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

请注意,我每次检索数据时都会处理上下文,它会改变什么吗?不会,即使图形由上下文管理,您仍然会受到性能影响。