我正在使用实体框架。我有一个表,其中包含自动生成的主键以及与其他主数据表的很多关键关系。我们需要一个复制功能,其中我们可以从表中选择任何现有行,并将其作为副本插入同一个表中。
我需要复制所有字段,但它应该是不同的记录,并且需要相同的过程/ LINQ。
请建议,我该怎么办。
答案 0 :(得分:2)
你可以这样做:
context.Entry(oCustomer).State = EntityState.Added;
这将导致EF认为此实体是新实体,在您致电SaveChanges
后,它将插入在数据库中而不是已更新。< / p>
如果您有对象图 - 您需要遍历它并确保所有子实体都设置为EntityState.Unchanged
,否则它们将在SaveChanges
之后重复。