Visual Studio 2013
我试图在PluralSight上学习asp.net MVC。我使用以下类创建了一个名为eManagr.Domain的项目(dll):Department / Employee / IDepartmentDatasource
部门
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; }
}
我使用以下文件创建了基础结构文件夹: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; }
}
}
然后,在项目创建过程中,我使用带有Internet模板的MVC 4创建了另一个项目,称为eManager.Web。
运行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" }
);
}
编辑-来自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> update-database指定'-Verbose'标志以查看应用于目标数据库的SQL语句。暂无基于代码的迁移。运行种子方法。下午>
运行此程序后,我想在我的App_Data中看到一个数据库文件,但是该文件不存在,并且当我使用SQL Server Object Explorer时,即使这样做,也不会创建该数据库。
您可以从Web.config提供连接字符串吗?另外,是否有一个名称与您的连接字符串相同的数据连接(服务器资源管理器->数据连接)?
我认为,向DepartmentDb上下文类添加无参数的构造函数可以解决您的问题
public DepartmentDb ()
: base("name=DefaultConnection")
其中name = DefaultConnection必须是您的连接字符串名称
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句