Clone LINQ To SQL object Extension Method throws object dispose exception....

Posted by gtas on Stack Overflow See other posts from Stack Overflow or by gtas
Published on 2010-06-15T21:22:39Z Indexed on 2010/06/16 11:42 UTC
Read the original article Hit count: 268

Hello all,

I have this extension method for cloning my LINQ To SQL objects:

public static T CloneObjectGraph<T>(this T obj) where T : class 
{
    var serializer = new DataContractSerializer(typeof(T), null, int.MaxValue, false, true, null);
    using (var ms = new System.IO.MemoryStream())
    {
        serializer.WriteObject(ms, obj);
        ms.Position = 0;
        return (T)serializer.ReadObject(ms);
    }
}

But while i carry objects with not all references loaded, while qyuerying with DataLoadOptions, sometimes it throws the object disposed exception, but thing is I don't ask for references that is not loaded (null).

e.g. I have Customer with many references and i just need to carry on memory the Address reference EntityRef<> and i don't Load anything else. But while i clone the object this exception forces me to load all the EntitySet<> references with the Customer object, which might be too much and slow down the application speed.

Any suggestions?

© Stack Overflow or respective owner

Related posts about linq-to-sql

Related posts about serialization