LINQ DataContext вставляет объект, который не присоединен - PullRequest
0 голосов
/ 29 июня 2010

Я создал два отдельных объекта, один из класса Order и один из класса TempOrder.Когда я пытаюсь вставить объект TempOrder в базу данных, используя db.TempOrders.InsertOnSubmit (obj) и затем вызывая db.SubmitChanges, объект Order также передается (без привязки к текстовому тексту или чему-либо еще).Между этими двумя объектами в базе данных нет никакой связи, но я создал простую функцию-член в классах для создания объекта Order, когда у вас есть TempOrder, и наоборот (toNewOrder - toNewTempOrder).Код, который я использую, можно увидеть ниже:

if(order.PaymentType == "Paypal")
{
    TempOrder temp = new TempOrder();
    temp = order.ToNewTempOrder();
    db.Add(temp);//Add is calling datacontext.TempOrders.InsertOnSubmit and datacontext.SubmitChanges
}

Когда вызывается db.Add (temp), набор изменений также содержит временный объект и объект порядка.Как я могу избежать этого?Я делаю что-то не так?Это из-за функции .toNewTempOrder ()?Я застрял на этом.

1 Ответ

0 голосов
/ 14 июля 2010

Как ваш код получил объект заказа, который мы видим в фрагменте?

Вы уверены, что одно не является производным от другого в вашем коде C #? Таблицы SQL, которые они представляют, все еще могут быть совершенно не связаны, если классы C # были созданы вручную.

Это db.Add (...) перегружен или он принимает какой-то базовый тип и затем принимает решения на основе фактического типа аргумента?

...