Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将实体附加到数据上下文_C#_Linq To Sql - Fatal编程技术网

C# 将实体附加到数据上下文

C# 将实体附加到数据上下文,c#,linq-to-sql,C#,Linq To Sql,在LINQtoSQL中,在尝试附加实体之前,是否可以检查该实体是否已经是数据上下文的一部分 一点背景,如果有帮助的话 我的global.asax中有这段代码作为助手方法。通常,在请求之间,这不是问题。但是在登录之后,会多次调用它,第二次我尝试将成员对象附加到创建它的同一工作单元中 private void CheckCurrentUser() { if (!HttpContext.Current.User.Identity.IsAuthenticated) { A

在LINQtoSQL中,在尝试附加实体之前,是否可以检查该实体是否已经是数据上下文的一部分

一点背景,如果有帮助的话

我的global.asax中有这段代码作为助手方法。通常,在请求之间,这不是问题。但是在登录之后,会多次调用它,第二次我尝试将成员对象附加到创建它的同一工作单元中

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);
}

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

DataContext.TableName.Contains(Item)
或者我们使用id字段。如果该项插入到数据库中,则将为其分配一行

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

与其附加到新的数据上下文,为什么不在新的数据上下文中重新查询对象呢?它认为这是一种更可靠、无状态的策略