我的订单实体有一个保存功能,看起来像这样,它在 sumbmitChanges 行中断:
public void SaveOrder ( Order order ) {
if (order.OrderId == 0)
orderTable.InsertOnSubmit(order);
else if (orderTable.GetOriginalEntityState(order) == null) {
orderTable.Attach(order);
orderTable.Context.Refresh(RefreshMode.KeepCurrentValues , order);
}
orderTable.Context.SubmitChanges();
}
订单实体包含另外两个实体;地址实体和信用卡实体。现在我希望这两个实体有时为空。
现在我猜测为什么会抛出错误是因为这两个内部顺序的实体都是空的。如果是这种情况,如何将两个实体(地址和信用卡)都为空的新订单插入数据库。
编辑:
所以我暂时删除了信用卡实体和地址实体,但我意识到是什么导致了问题。该订单有一组图像(一个图像是一个实体),它会抛出错误,因为(我假设)我无法插入一个新订单,该订单具有一堆已经存在的图像。所以我知道问题出在哪里,但我不知道如何解决。任何帮助将非常感激。谢谢
最佳答案
您的图像实体是否来自不同的 DataContext?只要它们来自您用来保存订单的同一个 DataContext,就不应再次尝试添加它们。
关于c# - 已尝试附加或添加不是新 Linq to Sql 错误的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5187877/