Linq 在EF实体上复制一行

Linq 在EF实体上复制一行,linq,entity-framework,duplicates,Linq,Entity Framework,Duplicates,我有以下代码: Chart getChart = _db.Charts.SingleOrDefault(p => p.ChartID == chart.ChartID); if (ModelState.IsValid) { getChart.MainChart = false; _db.Charts.AddObject(getChart); _db.SaveChanges(); 所以我想复制这一行。但

我有以下代码:

Chart getChart = _db.Charts.SingleOrDefault(p => p.ChartID == chart.ChartID);
if (ModelState.IsValid)
        {
            getChart.MainChart = false;
            _db.Charts.AddObject(getChart);
            _db.SaveChanges();
所以我想复制这一行。但是我得到了这个错误:ObjectStateManager中已经存在一个具有相同密钥的对象。现有对象处于“修改”状态。如果对象处于已添加状态,则只能再次将其添加到ObjectStateManager

更改标识列以允许met添加此行的最简单方法是什么。我不想创建一个新的图表,因为该表中有很多列


亲切的问候

如果你的方法无法实现你想要实现的目标。
您必须为
图表
实体使用类似的映射库,或者实现
IClonable
,并使用
Clone()
方法

更新:

此外,还可以编写/使用泛型方法将每个属性复制到另一个对象中的类似属性。有几个有用的链接是或。

AutoMapper会有什么帮助?我从来没有这样用过,我很好奇。你可以在和上看到更多的解释