在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

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