1
ここは私の次のコードです。コンテキストオブジェクトに複数のレコード(LINQの場合はオブジェクトと思われる)を追加し、DBに送信することになっています。問題は、複数のレコードが挿入された時点で、1つのレコードだけがDBに現在作成されていることです。LINQはすべてのレコードをキューに挿入しません(レコードの上書きが可能です)
using (DeviceExerciseDataDataContext context = new DeviceExerciseDataDataContext())
{
foreach(UpdateData tgudData in data.UpdateData)
{
tgd.FK = 1;
tgd.Time = tgudData.TimeStamp;
tgd.Calories = Convert.ToInt32(tgudData.Calories);
tgd.HeartRate = tgudData.AvgHr;
tgd.BenchAngle = tgudData.Angle;
tgd.WorkoutTarget = 0;
tgd.Reps = tgudData.Reps;
context.Datas.InsertOnSubmit(tgd);
}
context.SubmitChanges();
}
今、私は、foreachのブロックにcontext.SubmitChanges()
を入れてみましたが、これはそれが与えたエラーです。
IDENTITY_INSERTがOFFに 設定されている場合は、テーブルに 「テーブル名」を ID列の明示的な値を挿入することはできません。
私はプライマリキー列には挿入されておらず、PK列は自動インクリメントに設定されており、IDです。
なぜ私のコードは複数のレコードを挿入していないのですか?
@BrokenGlassありがとうございます!しかし、今では、「既に使用されているキーを持つエンティティを追加できません」というエラーが表示されます。何か案は? 1つのレコードも挿入されていません。 – Kukoy
@abatishchev、私はPKをAutoGenerate = True、Auto-Sync = OnInsertに設定しましたが、まだ使用しているキーを持つエンティティを追加できません。 ? – Kukoy
@Fritos FKフィールドに一意制約が存在する可能性はありますか? – msarchet