0

次のコードがあります。

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 に再度追加できます。

この行を追加できるように ID 列を変更する最も簡単な方法は何ですか。そのテーブルには列が割り当てられているため、新しいチャートを作成したくありません。

敬具

4

1 に答える 1

0

AFAIK What you're trying to achieve is impossible with your approach.
You'd have to use a mapping library like AutoMapper, or implement IClonable for your Chart entity and use Clone() method.

Update:
Also, you can write/use a generic method to copy each property to the similar one in anothre object. A couple of useful links are this article on CodeProject or this blog post.

于 2012-08-14T17:35:09.183 に答える