2014-09-12 188 views
1

我一直在改变我的对象属性,这需要我不断更新我的表,但我不断收到错误,所以没有人知道我可以只删除整个数据库和重来?完全删除EF数据库在c#

我有这样的代码

using (var ctx = new Context()) 
      { 
       foreach (Item2 block in new_Items) 
       { 
        ctx.items_db2.Add(block); 
       } 
       ctx.SaveChanges(); 

       test = (from b in ctx.items_db2 
         orderby b.Index 
         select b).ToList(); 
      } 

我试图截断表,但我不能这样做,因为我已经改变了对象的属性,甚至当我运行从包管理器控制台的命令为了更新表格,我得到了其他的错误,所以我只想从一个干净的石板开始。

+0

连接SSMS并去“poof”? (或者,启用一个愚蠢的删除和重建模式。) – user2864740 2014-09-12 22:57:51

+0

我不知道该怎么做? – thatandrey 2014-09-12 22:59:49

回答

1

您就能通过从你的代码做到这一点:

using (var ctx = new Context()) 
{ 
    ctx.Database.Delete(); 
} 

或者连接到使用VS数据库 - 视图 - > SQLServer对象资源管理器连接到数据库服务器,右击数据库你想要删除并选择删除。您想勾选复选框关闭现有连接,否则删除操作可能会失败。

1

如果迁移并不重要,我:

  1. 删除迁移。
  2. 删除数据库中的所有表格。
  3. 运行Enable-migration命令。
  4. 运行Add-migration命令,添加初始迁移。
  5. 运行Upgrade-database命令。这将重建数据库中的所有表,并且你回到原点:)

我首先使用代码。

+0

但我无法删除表格,因为我更改了属性,我不知道如何将其更改回来。你能告诉我如何删除整个数据库,回到没有EF的状态吗? – thatandrey 2014-09-12 23:10:47

+0

你在使用什么数据库?你改变了哪些属性使删除表不可能? – smerlung 2014-09-12 23:12:22

+0

我不知道,我试过多次改变它,现在我甚至不知道我有多少桌子。这是一个个人项目,我只想为一堆对象存储一个属性的值,因为将它们保存到一个带有protobuff的文件中就是创建了一个大的200mb文件。所以这就是为什么我只想从 – thatandrey 2014-09-12 23:20:23