Entity Framework -Update-Database- Does not create Database
asp.net-mvc, entity-framework-5
Solution
Could you provide your connection string from Web.config? Also, is there a Data Connection (Server Explorer -> Data Connections) named the same as your connection String?
I think, adding a parameter-less constructor to your DepartmentDb context class could solve your problem
public DepartmentDb ()
: base("name=DefaultConnection")
Where name=DefaultConnection has to be your connection string name
Problem
Visual Studio 2013 I am trying to learn asp.net MVC over at PluralSight. I created a project(dll) called eManagr.Domain with the following classes: Department / Employee / IDepartmentDatasource Department.cs ``` public class Department { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual ICollection<Employee> Employees { get; set; } } ``` Employee.cs ``` public class Employee { public virtual int Id { get; set; } public virtual string Name { get; set; } } ``` IDepartmentDataSource ``` public interface IDepartmentDataSource { IQueryable<Employee> Employees { get; } IQueryable<Department> Departments { get; } } ``` I created an infrastructure folder with the following file : DepartmentDb.cs ``` public class DepartmentDb : DbContext, IDepartmentDataSource { public DbSet<Employee> Employees {get; set;} public DbSet<Department> Departments {get; set;} IQueryable<Employee> IDepartmentDataSource.Employees { get { return Employees; } } IQueryable<Department> IDepartmentDataSource.Departments { get { return Departments; } } } ``` I then created another project using MVC 4 called eManager.Web with Internet Template during the creation of the project. When running Enable-Migration it says I have two[eWeb.Domain , eWeb.Model.Users] which then I tell it Enable-Migration with the following command: Enable-Migration -ContextTypeName DepartmentDb which creates the migration folder and a file called Configurations.cs ``` public Configuration() { AutomaticMigrationsEnabled = true; } protected override void Seed(eManager.Web.Infrastructure.DepartmentDb context) { context.Departments.AddOrUpdate(t => t.Name, new Department() { Name="Engineering"}, new Department() { Name = "Sales" }, new Department() { Name = "Shipping" }, new Department() { Name = "HR" } ); } ``` EDIT -- Connection String from Web.Config -- ``` <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-eManager.Web-20140216202751;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-eManager.Web-20140216202751.mdf" providerName="System.Data.SqlClient" /> ``` When I run the following I get the following reponse: PM> update-database Specify the '-Verbose' flag to view the SQL statements being applied to the target database. No pending code-based migrations. Running Seed method. PM> After this runs, I suppose to see a database file in my App_Data but it does not exist and when I use SQL Server Object Explorer, the database is not created even though that is what I am trying to do.