我有一个程序需要保存实体对象.问题是我不知道这个实体是否附加到我的datacontext.为了解决这个问题,我使用以下代码:
try { db.ClientUsers.Attach(clientUser); db.Refresh(RefreshMode.KeepCurrentValues, clientUser); } catch { } db.SubmitChanges();
我正在寻找一种更好的方法来检测一个实体是否属于一个上下文,并测试一个实体是否附加到一个特定的上下文.
我想知道...... GetOriginalEntityState
对于非附着物体的回报是什么?即使它抛出异常,它也可能比刷新更快......
(更新) - 测试显示它返回null:
Customer cust = new Customer(); Customer orig = ctx.Customers.GetOriginalEntityState(cust); Assert.IsNull(orig); cust = new Customer(); ctx.Customers.Attach(cust); orig = ctx.Customers.GetOriginalEntityState(cust); Assert.IsNotNull(orig); Assert.AreNotSame(cust,orig);
所以也许使用GetOriginalEntityState
并检查null返回值...