0
 public bool UpdateValues(String impR, String actR, String proR, String impV, String magV)
 {
        bool IsInserted = false;

        try
        {
            MatrixValues c = cecbContext.MatrixValues.First(i => i.actv_reference == actR); // primary key
            c = cecbContext.MatrixValues.First(i => i.impt_reference == impR); // primary key
            c = cecbContext.MatrixValues.First(i => i.proj_reference == proR); // primary key

            c.mtrxV_importance = double.Parse(impV); // updated value
            c.mtrxV_magnitude = double.Parse(magV);  // updated value

            cecbContext.SaveChanges();  // getting an error here!!!

            IsInserted = true;
        }
        catch (Exception)
        {
            IsInserted = false;
        }

        return IsInserted;
    }

詳細を更新しようとするとエラーが発生する

エラーは

PRIMARY KEY 制約 'PK_MatrixValues' に違反しています。オブジェクト 'dbo.MatrixValues' に重複するキーを挿入できません。

4

2 に答える 2

1

オブジェクトをc複数回設定しています。最後のステートメントで十分な場合。その後、以前のものを使用しないでください。複数の基準を使用してオブジェクトを選択する場合cは、次の行を変更する必要があります。

MatrixValues c = cecbContext.MatrixValues.First(i => i.actv_reference == actR); // primary key
  c = cecbContext.MatrixValues.First(i => i.impt_reference == impR); // primary key
  c = cecbContext.MatrixValues.First(i => i.proj_reference == proR); // primary key

に:

MatrixValues c = cecbContext.MatrixValues.First(i => i.actv_reference == actR && c.impt_reference == impR && c.proj_reference == proR); 
于 2013-04-06T05:55:47.797 に答える
0

PRIMARY KEY 制約 'PK_MatrixValues' に違反しています。オブジェクト 'dbo.MatrixValues' に重複キーを挿入できません

これは、フィールドに主キーが含まれていることを意味します。重複したエントリは許可されません

于 2013-04-06T05:54:35.420 に答える