实体框架 - 分离并保留相关的对象图

31 entity-framework

我刚开始使用Entity Framework而不是我的普通NHiberante来看看EF是如何工作的,到目前为止我遇到了很多问题,但其中一个特别是分离对象并保留相关的子对象.
我买了O'Reilly实体框架书,它告诉你"默认情况下是实体框架在分离时不保留对象图"但它没有显示你如何保持图形!谢谢O'Reilly,这真的很有用.

无论如何,如果有人可以帮助那将是伟大的,代码如下:

        using (var creativeWorkshopEntities = new CreativeWorkshopEntities())
        {
            var q = from c in creativeWorkshopEntities.Job.Include("Files")
                    where c.Id == jobId
                    select c;

            var job = q.First();

            creativeWorkshopEntities.Detach(job);

            return job;
        }
Run Code Online (Sandbox Code Playgroud)

谢谢!

Ale*_*mes 24

请尝试使用NoTracking查询.这样就不会附加对象了,所以你不需要'拆分',这是图形被粉碎的时候:

using (var creativeWorkshopEntities = new CreativeWorkshopEntities())        
{            
    creativeWorkshopEntities.Job.MergeOption = MergeOption.NoTracking;
    var q = from c in creativeWorkshopEntities.Job.Include("Files")
            where c.Id == jobId                    
            select c;            
    var job = q.First();            
    return job;
} 
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助

亚历克斯

(项目经理实体框架小组)

  • 有没有办法防止实体图被粉碎?为什么要以这种方式实施分离? (7认同)
  • 如果我需要保持上下文活动怎么办?我每个http请求使用1个上下文,即使我设置了MergeOption.NoTracking,实体也保持连接状态 (2认同)