1

我想手动创建与从缓存中获取的对象的实体关系。

Car car = Cache.GetCarById(1); // takes this from cache
SteeringWheel steeringWheel = Cache.GetSteeringWheelById(1); //takes this from DB 
                                                             //also saves in cache
car.SteeringWheel = steeringWheel; 

关于上述任务

无法定义这两个对象之间的关系,因为它们附加到不同的 ObjectContext 对象。

我尝试了以下方法:

  • steeringWheel保存后从缓存返回(因此为同一实体发出 2 个缓存请求)
  • 在缓存之前将每个实体从它自己的上下文中分离出来

以上都不起作用。如果我能够获得上下文,car我会附加steeringWheel到它,但是......什么上下文?上下文是否与缓存中的对象一起保存,我该如何获取它?

请注意,我真的不需要上下文,我只是按原样显示这些数据。

LE:上下文是跨一个http请求共享的,从静态方法使用

public static myEntities Context
    {
        get
        {
            string ocKey = "ocm_" + HttpContext.Current.GetHashCode().ToString("x");
            if (!HttpContext.Current.Items.Contains(ocKey))
                HttpContext.Current.Items.Add(ocKey, new myEntities());
            return HttpContext.Current.Items[ocKey] as myEntities;
        }
    }
4

0 回答 0