Нет метода «Отсоединить», но это возможно при сериализации:
Customer customerCopy;
BinaryFormatter bf = new BinaryFormatter();
using (MemoryStream ms = new MemoryStream())
{
bf.Serialize(ms, customer);
ms.Position = 0;
customerCopy = (Customer)bf.Deserialize(ms);
}
Имейте в виду, что это неудобно повторно прикреплять объект позже. Табличный метод Attach
является привередливым - для его работы обычно требуется столбец Version
(тип отметки времени) для сущности.
Примечание. Я просто перечитал ваш вопрос, и звучит так, будто вы просто хотите построить объект. Если это так, то создание нового Customer
через new Customer()
будет , а не , создать присоединенную сущность. Он присоединяется только после вызова метода InsertOnSubmit
или Attach
для таблицы.
Кроме того, вы можете свободно добавлять отсоединенные сущности к List<Customer>
(или подобному), содержащему присоединенные сущности - Linq to SQL не заботится об этом, сущность присоединяется только в том случае, если она выдана самой DataContext
вы прикрепляете его одним из способов, указанных выше.