JetBrains / rider-efcore

Entity Framework Core UI plugin for JetBrains Rider
https://plugins.jetbrains.com/plugin/18147-entity-framework-core-ui
MIT License
180 stars 14 forks source link

Nothing happens after clicking "Add Migration" (error logs) #162

Closed Klusio19 closed 1 year ago

Klusio19 commented 1 year ago

After I click "Add Migration" nothing happenes. I get little red LED icon in the Rider (exception).

Expected behavior: Opening GUI window.

VERY IMPORTANT: Problem occurs only on Linux Operating System. I currently run dual-boot setup with Windows, and on Windows with the same Rider and plugin version everything works fine. Exception information below:

java.lang.NullPointerException: Cannot invoke "com.intellij.notification.NotificationGroup.createNotification(String, com.intellij.notification.NotificationType)" because the return value of "com.intellij.notification.NotificationGroupManager.getNotificationGroup(String)" is null at me.seclerp.rider.plugins.efcore.features.shared.BaseCommandAction.notifyEfIsNotInstalled(BaseCommandAction.kt:93) at me.seclerp.rider.plugins.efcore.features.shared.BaseCommandAction.access$notifyEfIsNotInstalled(BaseCommandAction.kt:28) at me.seclerp.rider.plugins.efcore.features.shared.BaseCommandAction$actionPerformed$1.run(BaseCommandAction.kt:45) at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:429) at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:114) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$6(CoreProgressManager.java:480) at com.intellij.codeWithMe.ClientId$Companion.decorateFunction$lambda$10(ClientId.kt:329) at com.intellij.codeWithMe.ClientId$Companion.decorateFunction$lambda$10(ClientId.kt:329) at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:252) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679) at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173) at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:252) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699) at java.base/java.lang.Thread.run(Thread.java:833)

seclerp commented 1 year ago

Hi @Klusio19, the root cause of the issue is that Rider can't detect your EF Core Tools (dotnet ef) installed. If you installed them and still experiencing the same after Rider restart, you need to walk through the Microsoft .NET tools troubleshooting guide, this is common on Linux distros unfortunately.

The issue on our side is that it fails with an exception instead of notifying you properly, we will address that in terms of that ticket.

Klusio19 commented 1 year ago

Hi! Thank you for you response! You were right! I was missing dotnef-ef. However the important thing is, I had Entity Framework installed, but not in a way it was recognizeable by Rider and Your plugin. Anyway, what I did was execute command dotnet tool install --global dotnet-ef. After that everything works like a charm. Like I said, it is somehow different from EF I had (executing dotnet ef (without the dash) spits out some info). Maybe (and I probably am) understanding something wrong (I am new to dotNet), but if someone will have the same problem as me, the solution is to instal dotnet-ef in a way I showed few lines above.