【问题标题】:A better way to "Clear" all tables using Entity Framework使用实体框架“清除”所有表的更好方法
【发布时间】:2010-07-22 14:46:34
【问题描述】:

您好,目前当我想清理我的表时,我会使用蛮力:

        inventario_dboEntities inv = new inventario_dboEntities();            

        foreach (var item in inv.espiromex_dampers)
        {
            inv.DeleteObject(item);
        }
        foreach (var item in inv.espiromex_detalles)
        {
            inv.DeleteObject(item);
        }
        foreach (var item in inv.espiromex_docs)
        {
            inv.DeleteObject(item);
        }

我相信一定有更好更优雅的方法来做到这一点......你们是如何完成这种任务的?

【问题讨论】:

  • 为什么需要清库?你不能只发送一个 SQL 查询吗?
  • 这是我的测试数据库,所以我不时清除它以重新开始!!!是的,我可以发送一个查询来截断所有内容,但我想知道是否有比使用实体框架更好的方法。
  • 真的没有更好的方法...我会创建某种“ResetDatabase”存储过程来重置表(身份等)。当然,请务必在生产过程中将其删除...

标签: c# mysql entity-framework


【解决方案1】:

我们通过从备份中恢复“基线”数据库来做到这一点。

【讨论】:

    【解决方案2】:

    您在 Entity Framework 中的另一个选项是使用 ExecuteStorecommand 执行此操作 db.ExecuteStoreCommand(@"delete table1;delete table2;delete table3;");

    【讨论】:

      【解决方案3】:

      我认为最好的方法和最佳实践是在您的查询浏览器中截断它们(因为您使用的是 MySQL)或@TheCloudlessSky 所说的使用存储过程。

      另外(但我不确定)你可以使用反射和一些花哨的东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-13
        • 2011-08-30
        • 2011-12-26
        • 2013-02-19
        • 2018-05-15
        • 1970-01-01
        相关资源
        最近更新 更多