C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■85796 / 2階層)  LINQ to SQL:
□投稿者/ WebSurfer (1364回)-(2017/11/25(Sat) 11:09:23)
No85785 (ぬる さん) に返信

自分も Linq to SQL はほとんど知らないのですが・・・

> 上記の様に、LINQ to SQLの途中で、ExecuteCommandでDeleteしたときに、
> 最後のSubmitChangesで
> 「既に使用されているキーを持つエンティティは追加できません。」
> という例外になってしまいます。

その結果から想像できるのは、

(1) 「ExecuteCommandでDeleteしたとき」は実際には SQL Server では Id = 1(主キー?)
  のレコードは DELETE されておらず、その状態で Id = 1 のレコードを INSERT しよう
  として失敗した。

(2) 一方、db.Student.DeleteOnSubmit ⇒ db.SubmitChanges を実行すると、その時点で SQL
  Server で Id = 1 のレコードは DELETE され、次に Id = 1 のレコードを INSERT できた。

・・・ということ以外は思い当たりません。

とすると、原因は DELETE クエリが間違っているか、ExecuteCommand が実行されてないとい
うことになると思われます。そのあたりは確認されたでしょうか?

ただ、コードを見た感じ DELETE クエリは間違ってなさそうですし、ExecuteCommand が実行
されない理由も自分は分からないのですが・・・

#想像を膨らませると、ExecuteCommand に db.SubmitChanges は働かない(DeleteOnSubmit
 で削除マークを付けたエンティティにしか働かない)、そして遅延実行されるとか?
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[1]: LINQ to SQL: /ぬる →Re[3]: LINQ to SQL: /ぬる
 
上記関連ツリー

LINQ to SQL: / ぬる (17/11/24(Fri) 11:31) #85784
Re[1]: LINQ to SQL: / ぬる (17/11/24(Fri) 11:36) #85785
  ├ Re[2]: LINQ to SQL: / furu (17/11/24(Fri) 15:55) #85789
  │└ Re[3]: LINQ to SQL: / ぬる (17/11/24(Fri) 16:04) #85790
  ├ LINQ to SQL: / WebSurfer (17/11/25(Sat) 11:09) #85796 ←Now
  │├ Re[3]: LINQ to SQL: / ぬる (17/11/28(Tue) 09:12) #85824
  ││└ Re[4]: LINQ to SQL: / furu (17/11/28(Tue) 09:38) #85825
  └ Re[2]: LINQ to SQL: / 魔界の仮面弁士 (17/11/28(Tue) 12:28) #85828
    │├ Re[4]: LINQ to SQL: / WebSurfer (17/11/28(Tue) 12:26) #85827
    │└ Re[4]: LINQ to SQL: / WebSurfer (17/11/28(Tue) 14:36) #85831
    │  └ Re[5]: LINQ to SQL: / ぬる (17/11/30(Thu) 21:46) #85906
    │    └ Re[6]: LINQ to SQL: / WebSurfer (17/11/30(Thu) 22:01) #85908
    │      └ Re[7]: LINQ to SQL: / ぬる (17/11/30(Thu) 23:56) #85910
    │        └ Re[8]: LINQ to SQL: / WebSurfer (17/12/01(Fri) 00:17) #85911
    │          └ Re[9]: LINQ to SQL: / ぬる (17/12/01(Fri) 09:21) #85913
    │            ├ Re[10]: LINQ to SQL: / 魔界の仮面弁士 (17/12/01(Fri) 10:04) #85914
    │            └ Re[10]: LINQ to SQL: / WebSurfer (17/12/01(Fri) 11:35) #85916
    └ Re[3]: LINQ to SQL: / ぬる (17/11/30(Thu) 21:46) #85905
      └ Re[4]: LINQ to SQL: / ぬる (17/12/04(Mon) 13:46) #85936 解決済み
        └ Re[5]: LINQ to SQL: / WebSurfer (17/12/05(Tue) 13:12) #85952
          └ Re[6]: LINQ to SQL: / ぬる (17/12/06(Wed) 19:57) #85980

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信