VisualStudio Code i migracja do .NET Core 2.2

Dziś napotkałem na dziwny problem, w który objawiał się wyjątkami rzucanymi przez Entity Framework. Mówiły one jedynie tyle, że w bazie danych, z którą próbuję się połączyć znajduje się nieznana kolumna. Problem dotyczył kolumny „Order”, która… znajduje się w powiązanej klasie (czytaj: widzę ją obecnie w kodzie źródłowym). Fakt, dodałem ją do encji niedawno, ale dodałem też odpowiednią migrację i baza danych ma tę migrację zaaplikowaną oraz widoczną w tabeli „__EFMigrationsHistory”. What the heck? chciałoby się powiedzieć…

Pewnym tropem był fakt, że problem występuje tylko w Visual Studio Code, a już nie w VS 2017. Postanowiłem więc przejrzeć pliki VS Code związane z lokalnym środowiskiem, które znajdują się w katalogu „.vscode”. Cóż tam znalazłem?

 

{
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (web)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/MyMilionDollarIdea.App/bin/Debug/netcoreapp2.1/MyMilionDollarIdea.App.dll",
"args": [],
"cwd": "${workspaceFolder}/MyMilionDollarIdea.App",
"stopAtEntry": false,
"launchBrowser": {
"enabled": true
},
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"sourceFileMap": {
"/Views": "${workspaceFolder}/Views"
}
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickProcess}"
}
]
}

Bingo! Ścieżka do projektu uruchamianego po wciśnięciu F5 (opcja Debug->Start Debugging) prowadzi do kompilacji pod .NET Core 2.1, a ja niedawno zmigrowałem aplikację do .NET Core 2.2!

Wyjątek rzucany przez Entity Framework to tylko błędny trop. Rzeczywiście w wersji pod .NET Core 2.1 wspomniana kolumna Order nie istniała i encje również jej nie posiadały. Próbując uruchomić wersję .NET Core 2.1 aplikacja próbowała odtworzyć inną (nowszą) strukturę bazy i nie mogła dopasować kolumny do encji, która odpowiedniej właściwości nie miała, więc pojawiał się wyjątek.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*
*
Website