問題 §
過去にVisual Studioで作ったWebアプリでいつの間にか"The entity type ApplicationUser is not part of the model for the current context"が出るようになった。
原因 §
どうも、nugetモジュールMicrosoft.AspNet.Identity.Core(?)の2.0.0以降(?)非互換性が存在する模様。機械的にnugetモジュールの更新を繰り返していると動かなくなるようだ。
解決 §
誤
new UserManager<ApplicationUser>(new UserStore<ApplicationUser>());
正
new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
参考 §
https://stackoverflow.com/questions/23893710/the-entity-type-applicationuser-is-not-part-of-the-model-for-the-current-context
感想 §
「ずいぶん古い問題に思えるけど?」
「そう。かなり古い問題」
「なぜ今頃?」
「実は、リリースしていなかった実験的なプログラムだけが叩くAPIのコードのみ上記の問題が入っていた。改めてそのプログラムをデバッグ中に問題が発覚したというわけだ」
「それはややこしいね」
「実はこの問題、スタックトレースを見ると完全にクラスライブラリ内で起きている問題で、原因が解決できるか途方に暮れていた。でも、同じ問題を抱えた人が多数で助かった」
「今回の教訓は?」
- 外部ライブラリへの過度の依存は問題が起きやすい
- みんな遭遇する問題は同じ。検索しよう