LINQ DataContext插入未附加的对象

时间:2010-06-29 07:41:30

标签: c# linq-to-sql datacontext submitchanges

我创建了两个单独的对象,一个是Order类,另一个是TempOrder类。当我尝试使用db.TempOrders.InsertOnSubmit(obj)在db中插入TempOrder对象然后调用db.SubmitChanges时,Order对象也被提交(没有附加到datacontext或任何东西)。数据库中的两个对象之间没有关系,但是我在类中创建了一个简单的成员函数,以便在拥有TempOrder时创建Order对象,反之亦然(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)时,changeset也包含temp对象和order对象。我怎么能避免这个?我做错了吗?这是因为函数.toNewTempOrder()?我坚持这个。

1 个答案:

答案 0 :(得分:0)

您的代码是如何获得我们在代码段中看到的订单对象的?

你确定你的C#代码中没有来自另一个吗?如果C#类是手工制作的,它们代表的SQL表仍然可以完全不连接。

db.Add(...)是否已重载或需要一些基类型,然后根据参数的实际类型做出决策?