Enable Migrations Visual Studio For Mac

At some point, I have to enable EF migrations. The tutorial says: Go to View - Other Windows - Package Manager Console. Unfortunately there is no Package Manager Console in Visual Studio for Mac. So how do you handle things like enable-migrations, add-migration or update-database on the Mac? See full list on medium.com.

I’ve developed WhatsApp Viewer with the good old Visual Studio 2008.It’s a bit dated and doesn’t support all of the new C++ features.

Since the new Visual Studio 2017 is free (no costs) for personal usage and open-source projects, I thought it might be worth a shot.

Setup

My main development machine runs Linux Mint, and I prefer it over Windows a lot.Even though I use dual-boot (for games), I develop WhatsApp Viewer on Linux using a virtual machine running Windows XP.

Visual Studio 2017 doesn’t support XP anymore, so I had to set up a new virtual box and decided to go with Windows 7 then.

The VS2017 installer first complained about a missing update (KB4019990) and about the missing .NET 4.5 framework (I’ve installed 4.7.1 instead). This was easy to fix.Next, I’ve selected all options I wanted to install and let the setup do it’s job. This took some time, as it downloaded roughly 20 GB. The conversion of the old project files went well.

After the installation was successful, I’ve tried to build WhatsApp Viewer. I missed to install the “MFC and ATL Support” option, which led to this error message, complaining about afxres.h not found.

Visual

Next, I was able to build the project, but encountered a runtime error “Windows Imaging Component couldn’t be initialized”. This could be fixed by changing the “Platform toolset” to “Visual Studio 2017 - Windows XP (v141_xp)”. See this link for detailed information.

Now the compiled program worked.However, when I tried to debug it, some windows showed “The content requires a new version of Internet Explorer”. After I’ve downloaded the newest IE 11 this was fixed.

Visual Studio For Mac Wikipedia

I’ve additionally added Clang and exported the virtual machine as an .ova image for future usage.The only disadvantage is the size: The new image takes ~40 GB on my hard-drive, compared to the 12 GB of Visual Studio 2008 (compressed as .ova its 19 GB vs 6 GB).

Analysis

Too see if something major changed, I did a quick analysis on the resulting .exe files.Therefore I exported the file headers of both .exe using pev.

No new runtime dependencies (.dll) are required. Some imports now use the Unicode version instead of Ansi.Beside that, I couldn’t find major differences.I am quite happy with the result. I expect similar performance and can now use better tools and the new and improved C++ language features.

I have 4 projects :

For

I tried to enable migration in Toombu.Web but i had this error :

How can I enable migration ?

Answers:

use -ProjectName option in Package Manager Console:

Answers:

I am surprised that no one mentioned the obvious answer to this question: Entity Framework requires a context before enable-migrations will work. The error message the OP posted suggests that no context was found. Sure, it could be because the package manager console doesn’t “see” the context–in which case the accepted answer is a possible solution (another solution is one I suggest, below). But a context must exist in the current project (assembly) before any other solutions will work.

What does it mean to have a context? It means that there must exist a class in your project that inherits from DbContext (in System.Data.Entity). Here is an example:

Be sure you use

before the code above has access to the DbContext class and that you have used NuGet to get Entity Framework 4.1 or later for the current project.

If all along you had a context but the Package Manager Console just doesn’t “see” it: In Visual Studio 2013 you don’t have to use the -ProjectName switch. Instead, go to the Package Manager Console (it’s available in the View | Other Windows list), and look at the two dropdowns that appear at the top of the Package Manager Console dockable window. The first dropdown is for Package Source; the second is for Default Project. If you dropdown the Default Project and select a project in your solution then whatever commands you issue in the Package Manager console will be executed against the selected project.

Answers:

Change the default project and choose the startup project from dropdown:

Answers:

If anyone is still facing this problem. I solved it by using the following command:

Don’t forget to use the full path to your context name.

Answers:

You dbcontext is in Toombu.DataAccess So you should enable migrations in Toombu.DataAccess.

Answers:

I had to do a combination of two of the above comments.

Both Setting the Default Project within the Package Manager Console, and also Abhinandan comments of adding the -ContextTypeName variable to my full command. So my command was as follows..

My Settings::

  • ProjectName – RapidDeploy
  • BloggingContext (Class Containing DbContext, file is within Models folder of Main Project)

Mac Visual Studio Code

Answers:

What you will need to do is go to the model folder and create a new Class named MyDbContext.

It should look like this:

Then you will also need to add a reference to System.Data then you will also need to invoke it by adding this to the top of your post using System.Data.Entity;

Answers:

Change the default project to data access

change the default project dropdown in the package manager console to data access and give enable migrations…

Thats all success

Answers:

Ensure you are using the same version of Entity Framework across all projects using the NuGet Package Manager.

Recent windows updates may have installed a newer version of Entity Framework into your active project.

Background:
Around 16 Mar 2016, I started getting this error when trying to add migrations to a project where I had already enabled migrations and had successfully done migrations for.

I noticed that around March 10, a new stable version of Entity Framework 6 had been released.

If I specified the -ContextTypeName parameter in the enable-migrations command, I got an error indicating the migrations were already enabled.

Resolution:

1) Tools -> Nuget Package Manager -> Manage Nuget Packages for Solution

2) (Not sure if this step is necessary, but..) I updated my version of the Nuget Package Manager to the latest version. Also, after updating my version of Nuget Package Manager, I had to restart Visual Studio twice before the NuGet Command line would work properly.

3) Tools -> Nuget package Manager -> Manage Nuget Packages for Solution -> Search Installed packages -> Type Entity Framework

a. You may see more than one version of Entity Framework there.

VisualEnable Migrations Visual Studio For Mac

b. Click Manage on each version of Entity Framework and ensure that your projects are using the SAME version of Entity Framework.

  • Uncheck the version of Entity Framework that you are not using and for the version of Entity Framework you ARE using make sure it is checked across your projects that need it.

Again, as noted in step 2, I had to restart visual studio twice to get the NuGet Package Manager Console to work properly after updating my version of the NuGet Package Manager. I got an error starting the console the first time, and
“exception calling createinstancefrom with 8 arguments could not load file or assembly EntityFramework” when running the enable-migrations command the second time.

Restarting visual studio seemed to resolve those issues, however.

Answers:

I have been getting this same problem. I have even tried above enable migrations even though I have already done. But it keeps giving same error. Then I had to use the force switch to get overcome this problem. I am sure this will help in someone else’s case as well as its a possible work around.

After enabling migration with force, you should update your database (Make sure default project is set correctly). Otherwise you will get another problem like explicit migrations are pending.

Then just execute your add-migrations or any other commands, it should work.

Questions:

Thanks for the suggestions, I solved the problem by combining all the solutions here. At first I created the DbContext Model:

After creating the dbcontext class, I ran the enable-migration command with the project Name: enable-migrations -ProjectName YourProjectName

Answers:

This error getting because of the compiler not getting ‘Context’ class in your application. So, you can add it manually by Add –> Class and inherit it with ‘DbContext’ Class
For Example :

Enable Migrations Visual Studio For Mac Os

Tags: text