我想手动创建与从缓存中获取的对象的实体关系。
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;
}
}