大文字やら小文字やら全角やら半角やら。
EntityFrameworkで、こんなExceptionが。
主キーで、大文字やら小文字やら全角やら半角やら”のみ異なる文字列”(例:”AbC"→"ABc")に変更された場合で、これってObjectに対するUpdateがうまく行ってないってことか???
System.InvalidOperationException: ObjectStateManager に、型 'Hoge.Fuga.XxxEntity' のオブジェクトへの参照を持つ ObjectStateEntry が含まれていません。
アプリでInsertかUpdateか検知する箇所をすり抜けてるみたいで、案の定Japanese_CS_AS_KS_WSにすると、ちゃんと主キー(オブジェクト)が違うよって検知してる。
SQL Server 照合順序の意味 | tk-engineering.com Technical blog
普通はJapanese_CS_AS_KS_WSじゃねんかな?ってことで。
"Japanese_"以降のモードは以下の通り。
1文字目
I | Insensitive(識別しない) |
S | Sensitive(識別する) |
2文字目
C | Case(大文字小文字) | "a"と"A" |
A | Accesnt(アクセント記号) | "a"と"á" |
K | Kana(ひらがなとカタカナ) | "あ"と"ア" |
W | Width(文字列幅) | "6"と"6" |