開発環境

  • Windows 10(64bit)
  • Visual Studio 2015 Update 3
  • C#+WPF
  • プロジェクトに「サービスベースのデータベース(SQL Server)」を追加しています

構成

  • 全体の処理ロジックとしては、次の4段階に分かれています
    • CSVからデータを読み込み
    • それを1行づつ解釈して、空のデータベースに対しInsertOnSubmitメソッドを実行
    • SubmitChangesメソッドで書き込みを確定する
    • データベースに追記があった際は、その都度CSVにも書き出している
  • データベースは主キーが時刻(DateTime)、その他の行が複数の数値データ(int)です
  • 上記だけだとデータベースを組む必然性が怪しいですが、主キーで範囲指定(つまり期間指定)を行う予定なのでデータベースを挟んでいます

問題が発生した状況

  • データベースに対しInsertOnSubmitメソッドは成功しています
  • その後にSubmitChangesメソッドを実行しようとすると、System.Data.Linq.DuplicateKeyException例外が飛びます
  • 名前から「主キーが重複している」と察せられるが、書き込む前のデータベースの中身が空であることは別途表示用メソッドを用いて確認しています
  • 以上から、どのようにすればエラーが出ず、正常に実行できるのかを知りたいです