Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 实体框架-更新数据库-不创建数据库_Asp.net Mvc_Entity Framework 5 - Fatal编程技术网

Asp.net mvc 实体框架-更新数据库-不创建数据库

Asp.net mvc 实体框架-更新数据库-不创建数据库,asp.net-mvc,entity-framework-5,Asp.net Mvc,Entity Framework 5,Visual Studio 2013 我正试图在PluralSight学习asp.NETMVC。我创建了一个名为eManagr.Domain的项目(dll),其中包含以下类: 部门/员工/IDepartmentDatasource 科室 public class Department { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual I

Visual Studio 2013

我正试图在PluralSight学习asp.NETMVC。我创建了一个名为eManagr.Domain的项目(dll),其中包含以下类: 部门/员工/IDepartmentDatasource

科室

public class Department
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual ICollection<Employee> Employees { get; set; }
}
IDepartmentDataSource

public interface IDepartmentDataSource
{
    IQueryable<Employee> Employees { get; }
    IQueryable<Department> Departments { get; }
}
EDIT--Web.Config中的连接字符串--


当我运行以下命令时,我得到以下响应: PM>更新数据库 指定'-Verbose'标志以查看应用于目标数据库的SQL语句。 没有挂起的基于代码的迁移。 运行种子法。 PM>


运行此操作后,我想在我的App_数据中看到一个数据库文件,但它不存在。当我使用SQL Server对象资源管理器时,即使我正试图这样做,也不会创建该数据库。

能否从Web.config提供连接字符串? 此外,是否存在与连接字符串同名的数据连接(服务器资源管理器->数据连接)

我认为,向DepartmentDb上下文类添加一个无参数构造函数可以解决您的问题

public DepartmentDb ()
        : base("name=DefaultConnection")

其中name=DefaultConnection必须是您的连接字符串名称

我注意到您以正确的方式启用了迁移,您是否运行了: 添加迁移“给它一个名字”? 完成此操作后,您将注意到migrations文件夹中有一个新文件。
如果不创建新的迁移,您将无法更新数据库。

我刚刚遇到了类似的情况。我在学习以下ASP.NET MVC教程时遇到了它:

在我的例子中,问题似乎是我已经有了一个同名的数据库表。大约一个月前,我已经完成了部分教程,但被打断,不得不放弃。尽管我删除了整个项目,但似乎数据库表名可能已被保留

我说似乎是,因为问题消失了,解决方案如下:在第二次删除项目后,我在所有相关情况下小心地用“Contoso”替换“Contosuniversity”

在问题解决之前,在尝试更新数据库时,我在PackageManager控制台中反复出现(0x80131904错误),并注意到mdf文件无法连接到数据库。但是,当我检查相应的目录时,mdf文件甚至没有被创建

仅供参考,对于在Visual Studio 2012中开始MVC ers,我建议您在阅读上述MVC教程之前先阅读以下MVC教程。 MVC5 Visual Studio 2013版本也可通过该链接获得。 第一段的教程做了一些跳跃


如果我从EF5教程开始作为我的第一个MVC项目,我就无法调试这个问题。

谢谢。。我撞了我的头,这很简单。我所做的是基于我所遵循的一个教程,并且正在做的人在他的类中没有连接字符串,但它在他的实例中起作用。
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; }
    }
}
    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" }
            );
    }
<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" />
public DepartmentDb ()
        : base("name=DefaultConnection")