bar*_*own 4 asp.net-mvc entity-framework-5
视觉工作室 2013
我正在尝试在 PluralSight 学习 asp.net MVC。我创建了一个名为 eManagr.Domain 的项目(dll),其中包含以下类:Department / Employee / IDepartmentDatasource
部门.cs
public class Department
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual ICollection<Employee> Employees { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
员工.cs
public class Employee
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
部门数据源
public interface IDepartmentDataSource
{
IQueryable<Employee> Employees { get; }
IQueryable<Department> Departments { get; }
}
Run Code Online (Sandbox Code Playgroud)
我使用以下文件创建了一个基础结构文件夹: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; }
}
}
Run Code Online (Sandbox Code Playgroud)
然后,我在项目创建期间使用 MVC 4 创建了另一个项目,称为 eManager.Web 和 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" }
);
}
Run Code Online (Sandbox Code Playgroud)
编辑——来自 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" />
Run Code Online (Sandbox Code Playgroud)
当我运行以下命令时,我得到以下响应: PM> update-database 指定“-Verbose”标志以查看应用于目标数据库的 SQL 语句。没有挂起的基于代码的迁移。运行种子方法。下午>
运行后,我想在我的 App_Data 中看到一个数据库文件,但它不存在,当我使用 SQL Server 对象资源管理器时,即使这是我想要做的,也没有创建数据库。
你能从 Web.config 提供你的连接字符串吗?另外,是否有与您的连接字符串名称相同的数据连接(服务器资源管理器 -> 数据连接)?
我认为,向 DepartmentDb 上下文类添加无参数构造函数可以解决您的问题
public DepartmentDb ()
: base("name=DefaultConnection")
Run Code Online (Sandbox Code Playgroud)
其中 name=DefaultConnection 必须是您的连接字符串名称
| 归档时间: |
|
| 查看次数: |
8392 次 |
| 最近记录: |