0

EF を使用してエンティティを更新しています。

これが私のコードです:

    public MamConfiguration_V1 Save(MamConfiguration_V1 item)
    {
            item.ThrowIfNull("item");

            mMaMDBEntities.MamConfiguration_V1.AddObject(item);

            mMaMDBEntities.ObjectStateManager.ChangeObjectState(item, System.Data.EntityState.Modified);

            mMaMDBEntities.SaveChanges();

            return item;
    }

ただし、この方法では、DB で PK 違反エラーが発生します。

私はこの方法 (新しい EF エンティティを作成する) を使用し、それを次のようにマークすることを好みます。

変更されましたが、一意性の制限を破らないようにするにはどうすればよいですか?

4

1 に答える 1

-1

このメソッドを使用して既存のアイテムを更新すると、例外が発生します。

  mMaMDBEntities.MamConfiguration_V1.AddObject(item);

ライン。このコードでは、2 回目に項目をテーブルに入れようとしているように見えます。私の推測が正しかった場合、このメソッドを使用して既存のアイテムを更新する場合は、この行を削除するだけで済みます。EF は、オブジェクトのフィールドに加えた変更に従って DB を自動的に更新します。

于 2013-04-18T14:58:49.517 に答える