在EF实体上复制一行

时间:2012-08-14 17:04:22

标签: 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();

所以我想复制这行。但我收到此错误:ObjectStateManager中已存在具有相同键的对象。现有对象处于Modified状态。如果对象处于添加状态,则只能再次添加到ObjectStateManager。

更改Identity列以让met遇到添加此行的最简单方法是什么。我不想创建新的图表,因为该表中有分配列。

亲切的问候

1 个答案:

答案 0 :(得分:0)

AFAIK您的方法无法实现您想要实现的目标 您必须使用AutoMapper之类的映射库,或为IClonable实体实施Chart并使用Clone()方法。

更新
此外,您可以编写/使用泛型方法将每个属性复制到另一个对象中的类似属性。一些有用的链接是this article on CodeProjectthis blog post