c# - 已尝试附加或添加不是新 Linq to Sql 错误的实体

标签 c# asp.net-mvc linq-to-sql

我的订单实体有一个保存功能,看起来像这样,它在 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/

相关文章:

c# - 将一堆位图转储为 PDF 的最快的 .Net PDF 库是什么?

c# - Linq to Sql 查询,datediff +-3 天

c# - 简单的 LINQ to SQL 嵌套选择

c# - 复杂的 LINQ-TO-SQL 解决方案......或者只是我的经验不足?

c# - 对 sql server 进行多线程调用的有效方法?

c# - Linq 选择相同的 ID 并删除其他

c# - ASP.NET Core 2 - GetUserIdAsync 返回带有 Guid Id 的 null 结果

javascript - 使用多个参数将数据从 javascript 传递到 MVC Controller

asp.net-mvc - MVC RequireHttps 属性毫无值(value)?

asp.net-mvc - MVCContrib - 测试 XMLResult 的最佳方法是什么?