I have 4 projects :
Toombu.Entities : all models are there
Toombu.DataAccess: Mapping, Repository and ToombuContext
Toombu.Logique : Logic of my application
In mosh tutorial, individual user account was selected which created a db context in the template. Also, make sure EntityFramework is installed in the Nuget package manager.
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 :
public class MyDbContext : DbContext
{
public DbSet<Customer> Customer { get; set; }
public MyDbContext()
{
}
}
Using the Package Manager, you need to re-install Entity Framework:
Uninstall-Package EntityFramework -Force
Then install it for each project:
Install-Package EntityFramework
Then do not forget to restart the studio.
My problem was link----> problem1
I solved that problem with one simple command line
Install-Package EntityFramework-IncludePrerelease
After that, i needed to face with one more problem, something like:
"No context type was found in assembly"
I solve this really easy. This "No context" that mean you need to create class in "Model" folder in your app with suffix like DbContext ... like this MyDbContext. There you need to include some library using System.Data.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
namespace Oceans.Models
{
public class MyDbContext:DbContext
{
public MyDbContext()
{
}
}
}
After that,i just needed this command line:
Enable-Migrations -ProjectName <YourProjectName> -ContextTypeName <YourContextName>
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:
public class MyDbContext : DbContext
{
public MyDbContext()
{
}
}
Be sure you use
using System.Data.Entity;
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.
I have encountered this problem a few times and in my case I uninstalled EntityFramework nuget package and installed EntityFrameworkCore nuget package, entityFramework.design and entityframework.tools