C# Can';t使用Linq向SQL添加记录两次
在遗留系统中,我需要将相同的记录添加到表中两次 表上有一个标识,它随每个新记录而递增 如果执行以下操作,则会出现错误: “无法添加已存在的实体” 有没有一种方法可以在不创建另一个PricingSnapshot对象的情况下添加两次记录C# Can';t使用Linq向SQL添加记录两次,c#,linq-to-sql,C#,Linq To Sql,在遗留系统中,我需要将相同的记录添加到表中两次 表上有一个标识,它随每个新记录而递增 如果执行以下操作,则会出现错误: “无法添加已存在的实体” 有没有一种方法可以在不创建另一个PricingSnapshot对象的情况下添加两次记录 PricingSnapshot pricingSnapshot = new PricingSnapshot { InvoiceOrderLineId = invoiceOrderLine
PricingSnapshot pricingSnapshot = new PricingSnapshot
{
InvoiceOrderLineId = invoiceOrderLineId,
GrossPaymentValue = grossTotal,
CreatedBy = "Pricing Engine",
CreatedDate = DateTime.Now
};
dBpostChanges.PricingSnapshots.InsertOnSubmit(pricingSnapshot);
dBpostChanges.SubmitChanges();
dBpostChanges.PricingSnapshots.InsertOnSubmit(pricingSnapshot);
dBpostChanges.SubmitChanges();
创建另一个定价快照对象是“正确”的方法。这是Linq to SQL的设计方式,所以做任何其他事情都是逆流的。创建另一个定价快照对象是“正确”的方法。这是Linq to SQL的设计方式,所以做任何其他事情都会逆流而上。您必须创建一个新的PricingSnapshot对象,因为在您第一次提交更改后,您的对象PricingSnapshot仍然存在,并且现在已经从表中分配了一个ID。因此,如果您试图在首次提交后访问对象的ID,您会发现它有一个ID,因此再次将其添加到表中将添加一个副本。您必须创建一个新的PricingSnapshot对象,因为在您第一次提交更改后,您的对象pricingSnapshot仍然存在,现在已从表中分配了一个ID。因此,如果您在第一次提交后尝试访问对象的ID,您会发现它有一个ID,因此再次将其添加到表中,将添加一个重复的ID。我猜表中的一列是唯一的。您能显示您的表模式吗?我想表中有一列是唯一的。您可以显示您的表模式吗?