【发布时间】:2016-10-19 05:17:58
【问题描述】:
Visual Studio 2013
我正在尝试在 PluralSight 学习 asp.net MVC。我创建了一个名为 eManagr.Domain 的项目(dll),其中包含以下类: 部门/员工/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; }
}
部门数据源
public interface IDepartmentDataSource
{
IQueryable<Employee> Employees { get; }
IQueryable<Department> Departments { get; }
}
我使用以下文件创建了一个基础结构文件夹: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; }
}
}
然后,我在项目创建过程中使用名为 eManager.Web 的 MVC 4 创建了另一个项目,其中包含 Internet 模板。
运行 Enable-Migration 时,它说我有两个 [eWeb.Domain , eWeb.Model.Users] 然后我用以下命令告诉它 Enable-Migration:
Enable-Migration -ContextTypeName DepartmentDb
创建迁移文件夹和名为 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 -- 来自 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" />
当我运行以下命令时,我得到以下响应: PM> 更新数据库 指定“-Verbose”标志以查看应用于目标数据库的 SQL 语句。 没有挂起的基于代码的迁移。 运行种子方法。 下午>
运行后,我想在我的 App_Data 中看到一个数据库文件,但它不存在,当我使用 SQL Server 对象资源管理器时,即使我正在尝试这样做,也没有创建数据库。
【问题讨论】:
标签: asp.net-mvc entity-framework-5