Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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
Linq to sql 很难更新由另一个LINQ到SQL上下文创建的实体_Linq To Sql - Fatal编程技术网

Linq to sql 很难更新由另一个LINQ到SQL上下文创建的实体

Linq to sql 很难更新由另一个LINQ到SQL上下文创建的实体,linq-to-sql,Linq To Sql,为什么这整天都在烦我 我有一个实体,其中有几个引用,我从一个上下文中获取,然后进行处理。 执行一些更改并尝试提交更改()。调用SubmitChanges()而不调用.Attach()似乎什么都不做。使用.Attach()时,我得到一个异常: 已尝试附加或添加非新实体,可能是从另一个DataContext加载的。这是不受支持的 有什么想法吗?L2S对于更新来自不同DB上下文的实体非常挑剔。事实上,除非您首先将它从它所来自的上下文中“分离”,否则您无法执行此操作。分离实体有两种不同的方法。其中之一如

为什么这整天都在烦我

我有一个实体,其中有几个引用,我从一个上下文中获取,然后进行处理。 执行一些更改并尝试提交更改()。调用SubmitChanges()而不调用.Attach()似乎什么都不做。使用.Attach()时,我得到一个异常:

已尝试附加或添加非新实体,可能是从另一个DataContext加载的。这是不受支持的


有什么想法吗?

L2S对于更新来自不同DB上下文的实体非常挑剔。事实上,除非您首先将它从它所来自的上下文中“分离”,否则您无法执行此操作。分离实体有两种不同的方法。其中之一如下所示。此代码将位于实体类中

public virtual void Detach()
{
    PropertyChanging = null;
    PropertyChanged = null;
}
除此之外,还可以使用基于WCF的序列化来序列化实体。大概是这样的:

    object ICloneable.Clone()
    {
        var serializer = new DataContractSerializer(GetType());
        using (var ms = new System.IO.MemoryStream())
        {
            serializer.WriteObject(ms, this);
            ms.Position = 0;
            return serializer.ReadObject(ms);
        }
    }

L2S对于更新来自不同DB上下文的实体非常挑剔。事实上,除非您首先将它从它所来自的上下文中“分离”,否则您无法执行此操作。分离实体有两种不同的方法。其中之一如下所示。此代码将位于实体类中

public virtual void Detach()
{
    PropertyChanging = null;
    PropertyChanged = null;
}
除此之外,还可以使用基于WCF的序列化来序列化实体。大概是这样的:

    object ICloneable.Clone()
    {
        var serializer = new DataContractSerializer(GetType());
        using (var ms = new System.IO.MemoryStream())
        {
            serializer.WriteObject(ms, this);
            ms.Position = 0;
            return serializer.ReadObject(ms);
        }
    }

致力于实现iClonable并使用.Attach(newEntity,oldEntity)。塔克斯。我还必须在sqlmetal中使用/serialization选项。我正在实现IClonable并使用.Attach(newEntity,oldEntity)。塔克斯。我还必须在sqlmetal中使用/serialization选项。