0

我有以下代码:

Chart getChart = _db.Charts.SingleOrDefault(p => p.ChartID == chart.ChartID);
if (ModelState.IsValid)
        {
            getChart.MainChart = false;
            _db.Charts.AddObject(getChart);
            _db.SaveChanges();

所以我想复制该行。但我收到此错误:ObjectStateManager 中已存在具有相同键的对象。现有对象处于已修改状态。只有处于添加状态的对象才能再次添加到 ObjectStateManager。

更改身份列以让遇到添加此行的最简单方法是什么。我不想创建一个新图表,因为该表中有很多列。

亲切的问候

4

1 回答 1

0

AFAIK 你想要达到的目标是不可能用你的方法实现的。
您必须使用像AutoMapper这样的映射库,或者IClonable为您的Chart实体和使用Clone()方法实现。

更新
此外,您可以编写/使用通用方法将每个属性复制到另一个对象中的相似属性。一些有用的链接是CodeProject 上的这篇文章这篇博客文章

于 2012-08-14T17:35:09.183 回答