【发布时间】:2010-10-24 20:45:20
【问题描述】:
我将 linq 2 sql 用于我的 ORM。
出于性能原因,我将其中的一些序列化,然后将它们放入 memcached 中。
当它们被反序列化时,它们当然不会附加到数据上下文,这 100% 没问题,因为它们仅用于在这些场景中读取。
然而,出于理智的原因,我希望能够判断给定对象是否附加到数据上下文(从数据库中获取),或者没有(从 memcached 中获取)。
有什么想法吗?
谢谢。
【问题讨论】:
我将 linq 2 sql 用于我的 ORM。
出于性能原因,我将其中的一些序列化,然后将它们放入 memcached 中。
当它们被反序列化时,它们当然不会附加到数据上下文,这 100% 没问题,因为它们仅用于在这些场景中读取。
然而,出于理智的原因,我希望能够判断给定对象是否附加到数据上下文(从数据库中获取),或者没有(从 memcached 中获取)。
有什么想法吗?
谢谢。
【问题讨论】:
使用 GetOriginalEntityState。这是一个测试。
客户 cust = new Customer(); ctx.Customers.Attach(cust); 客户来源 = ctx.Customers.GetOriginalEntityState(cust); //测试orig是否为null【讨论】:
GetOriginalEntityState 方法和空检查而不首先调用Attach 似乎可以工作,例如entityTable.InsertAllOnSubmit( entities.Where( e => entityTable.GetOriginalEntityState( e ) == null ) ) 正确插入所有新实体。