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。这意味着它们不会存储在跟踪实体以进行更新和删除的图形中。这在内存方面有助于提高性能。请注意,我每次检索数据时都会处理上下文,它会改变什么吗?不会,即使图形由上下文管理,您仍然会受到性能影响。