为什么删除时,实体框架无法重新创建我的LocalDB?

问题描述 投票:4回答:2

使用实体框架6使用模型第一次设置与

  • 没有连接字符串指定。
  • 简单的单类POCO的模型。

运行应用程序,数据库中创建。活泉!

删除密度纤维板在App_Data文件夹/ .LDF。

运行应用程序,数据库连接错误。

为何没有重新创建数据库?

附:试着做How to re-create database for Entity Framework?,但它不工作。

那么,如何说服EF重新创建数据库(为什么是这个党难?)?

c# entity-framework localdb
2个回答
7
投票

你可能会删除在Windows资源管理器的MDF文件。 SQL服务器的LocalDB并不知道它和错误可能是抱怨不能够找到MDF文件。

要正确删除它,你可以删除SQL Server Management Studio中Visual Studio中的数据库或SQL Server对象资源管理器。

或者,你可能会在Visual Studio解决方案资源管理器中选择“显示所有文件”,位于App_Data文件MDF文件,右键单击,从解决方案资源管理本身删除。 Visual Studio中似乎做正确的事,并让SQL Server的了解这种变化。


10
投票

在你的DbContext类的构造函数,你可以使用下列值之一,指定什么,当你运行你的应用程序做的:

        Database.SetInitializer<MyContext>(new CreateDatabaseIfNotExists<MyContext>());
        Database.SetInitializer<MyContext>(new DropCreateDatabaseIfModelChanges<MyContext>());
        Database.SetInitializer<MyContext>(new DropCreateDatabaseAlways<MyContext>());

尝试使用在你的DbContext类,这些初始化之一。

© www.soinside.com 2019 - 2024. All rights reserved.