在LINQ to SQL中,是否可以在尝试附加实体之前检查它是否已成为数据上下文的一部分?

有一点帮助的话...

我在global.asax将此代码作为辅助方法。 通常,在请求之间,这不是问题。 但是在登录后,这个调用不止一次,并且第二次我最终尝试将Member对象附加到创建它的相同工作单元中。

private void CheckCurrentUser()
{
    if (!HttpContext.Current.User.Identity.IsAuthenticated)
    {
        AppHelper.CurrentMember = null;
        return;
    }

    IUserService userService = new UserService();

    if (AppHelper.CurrentMember != null)
        userService.AttachExisting(AppHelper.CurrentMember);
    else
        AppHelper.CurrentMember = userService.GetMember(
            HttpContext.Current.User.Identity.Name,
            AppHelper.CurrentLocation);
}

===============>>#1 票数:0 已采纳

我相信有两种方法可以做到这一点。

DataContext.TableName.Contains(Item)

或者我们使用id字段。 如果将该项插入数据库,则将为其分配一行。

if(Item.id == 0)
   DataContext.Insert(Item)
else
   DataContext.Update(Item)

===============>>#2 票数:0

除了附加到新的数据上下文外,为什么不只是在新的数据上下文中重新查询对象? 它认为这是一种更可靠和无状态的策略。

  ask by Rob translate from so

未解决问题?本站智能推荐:

3回复

如何判断Linq对象是否已附加到数据上下文?

使用Linq-to-Sql: 但 我不知道obj是否已附加到数据上下文中。 如果没有,最后一次调用DeleteOnSubmit会抛出异常。 必须有一种简单的方法来判断obj是否附加到dataContext - 但我看不到任何明显的东西。 你怎么做呢?
2回复

C#/ PLINQO-将同一个实体分离并重新附加到同一个上下文失败

我将PLINQO用于LINQ-TO-SQL数据层。 我有以下代码(不是真实的代码,只是为了重现我得到的错误): 使用InvalidOperationException执行代码的最后一行,并显示以下错误消息:“无法附加已经存在的实体”。 我认为Detach方法应该将实体与上下文
1回复

将表添加到LINQ to SQL数据上下文

我正在尝试将数据库中的表添加到LINQ to SQL数据上下文中。 它不会让我。 在Visual Studio中的设计器中查看表格,似乎并没有将ID识别为主键。 我看不到桌子有什么问题。 任何想法,将不胜感激。 这是我的桌子;
2回复

动态将新表添加到数据上下文或EDM

我知道我们可以添加一个外部XML映射文件来动态更改数据上下文中的表名。 但是根据我在大多数文章中所看到的,只有在表结构相同(相同的列和主键)的情况下才能做到。 我想知道的是,有一种方法可以动态地将新表添加到数据上下文中,而不是当前上下文中的表。 还是有可能通过实体框架来实现?
1回复

如何确定当前数据上下文中是否存在实体?

例如,假设我正在创建或获取一些稍后计划插入,更新或丢弃的实体: 当需要恢复时,我可以这样做: 我希望能够通过_myEntityCollection进行迭代,并确定该实体是我获取的那个实体,还是它是一个新的实体。
3回复

数据上下文的SubmitChanges方法使实体引用设置为null

我知道这看起来有点长,但我试图尽可能地解释这个问题。 我们对linq to sql数据上下文类有一个非常“异乎寻常”的问题。 我们有一个n层结构,结构如下:我们有3个类MotherClass,ChildClass,ChildChildrenClass MotherClass看起来像
2回复

检测实体是否附加到datacontext

我有一个程序需要保存实体对象。 问题是我不知道这个实体是否附加到我的datacontext。 为了解决这个问题,我使用以下代码: 我正在寻找一种更好的方法来检测一个实体是否属于一个上下文,并测试一个实体是否附加到一个特定的上下文。
1回复

L2S绑定源是否不将“ addnew”对象添加到数据上下文?

我在绑定到datagridview的winform上使用Linq to sql绑定源。 在执行AddNew和SubmitChanges之后,它似乎没有保存到数据库。 然后,当我检查数据库时,该对象不存在。 绑定源是否没有告诉datacontext我要插入对象? 如果我将代码更改
1回复

遍历数据上下文表

我想做的是,遍历数据上下文,并为找到的每个表选择两个不同的行,并比较各个列,看看行是否相等。 到目前为止,我已经制作了一种方法来比较两行的值,如果行的所有值都相等,则返回true。 现在,我想按照以下概述将这种方法放入一个foreach循环中: 但是我不知道如何构造forea
1回复

清除数据上下文错误?

我正在研究一个使用Linq-to-SQL的程序。 程序中有一种方法可以炸毁,因为它试图用重复键写一个记录。 我在context.SubmitChanges()上添加了一个try / catch,我正在记录错误,所以我可以稍后再查看。 但问题是,由于插入没有发生,数据上下文中仍然存在“坏”数