【问题标题】:How to drop and recreate a table in entity framework如何在实体框架中删除和重新创建表
【发布时间】:2012-09-13 22:10:43
【问题描述】:

在我的Global.asax 文件中,在我的ApplicationStart() 函数下,我想删除一个表并在应用程序启动时干净地重新创建它。完成此操作的最佳方法是什么,以便每次启动程序时都能无缝?为了更好地了解,我在一个表中跟踪在线用户,但是当应用程序再次启动时,显然我想清除这个表。我需要删除并重新创建表,因为如果我只是截断它,身份种子将不会重新开始(我使用的是 sql azure,所以我无法运行 db 命令来重置种子)。另外,如果我只是截断了我的表格,那么重置种子不是一个坏习惯吗?我已经这样做了,我已经在 id 1000 了,就在测试之后。

【问题讨论】:

  • 如果您不需要对实际 ID 进行顺序编号,那么不重置种子根本不是一个坏习惯。如果您担心 ID 会用完,您可以增加字段长度或使用 GUID 字段。
  • 实际上 SQL TRUNCATE TABLE 命令确实会重置标识列的种子。 DELETE FROM 没有。你能显示你当前清除表格的代码吗?

标签: c# asp.net sql asp.net-mvc-3 entity-framework


【解决方案1】:

您可以使用 ExecuteStoreCommand 方法执行普通的 SQL TRUNCATE 命令。 就像这样 dbContext.ExecuteStoreCommand("TRUNCATE TABLE myTable"); 。截断从表中删除所有记录并重置自动 ID 的种子。

【讨论】:

    猜你喜欢
    • 2015-03-28
    • 2022-01-09
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多