回答編集履歴
1
追記
    
        answer	
    CHANGED
    
    | 
         @@ -2,4 +2,13 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            コードには Add しか見当たりませんが、それでは EntityState.Added になるはずなので、insert 操作になるのですが、主キーが存在するのでエラーになったということでしょう。
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            Entity Framework が主キーの有無を調べて、EntityState の Added ⇔ Modified 自動的に切り替えてくれると言うことはありません。
         
     | 
| 
      
 5 
     | 
    
         
            +
            Entity Framework が主キーの有無を調べて、EntityState の Added ⇔ Modified 自動的に切り替えてくれると言うことはありません。
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            **【追記】**
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            上に書いたことを理解するのに役に立ちそうな Microsoft のドキュメントを紹介しておきます。最後のセクション Insert or update pattern が参考になるかも。
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            Working with entity states
         
     | 
| 
      
 12 
     | 
    
         
            +
            [https://docs.microsoft.com/en-us/ef/ef6/saving/change-tracking/entity-state](https://docs.microsoft.com/en-us/ef/ef6/saving/change-tracking/entity-state)
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            日本語版もありますが(en-us ⇒ ja-jp とすれば読めます)、翻訳がダメダメなので英語版を見ることをお勧めします。
         
     |