当前位置:  开发笔记 > 编程语言 > 正文

检测实体是否附加到datacontext

如何解决《检测实体是否附加到datacontext》经验,为你挑选了1个好方法。

我有一个程序需要保存实体对象.问题是我不知道这个实体是否附加到我的datacontext.为了解决这个问题,我使用以下代码:

try
{
    db.ClientUsers.Attach(clientUser);
    db.Refresh(RefreshMode.KeepCurrentValues, clientUser);
}
catch { }

db.SubmitChanges(); 

我正在寻找一种更好的方法来检测一个实体是否属于一个上下文,并测试一个实体是否附加到一个特定的上下文.



1> Marc Gravell..:

我想知道...... 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返回值...


这很棒!为DataContext创建了一个很好的"IsAttached(Of T)"扩展方法.
推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有