如何清除具有外键约束的数据库?

西缅

我希望我的种子方法首先清除/删除数据库并清除所有旧数据,但是

context.Database.ExecuteSqlCommand("TRUNCATE TABLE [Purchases]");
context.Database.ExecuteSqlCommand("TRUNCATE TABLE [Invoices]");

给我

无法截断表“购买”,因为它已被FOREIGN KEY约束引用。

因为采购中的条目取决于发票中的条目。如何通过种子方法清除所有数据?

编辑:这些是相关的模型:

public class Invoice
{
    //Primary Key
    public int InvoiceID { get; set; }

    //Misc. info
    public DateTime CreationDate { get; set; }
    public DateTime DeadlineDate { get; set; }
    public string ReceiverName { get; set; }

    //Order details
    public virtual List<Purchase> Purchases { get; set; }

    //Auto-calculated property
    [DataType(DataType.Currency)]
    public float TotalCost { get; set; }

    //Invoice author info
    public string AuthorName { get; set; }
    public string AuthorID { get; set; }
}


public class Purchase
{
    public int PurchaseID { get; set; }

    public string ProductDescription { get; set; }

    public float SinglePrice { get; set; }

    public float Amount { get; set; }

    public float TotalPrice { get { return Amount * SinglePrice; } }
}
隆隆

有几种解决方案。

  1. 如果要清理整个数据库,最简单的解决方案就是重新创建整个数据库。更复杂的解决方案是删除外键,清理数据库并创建48个agan键。这可以是自动化的。手动执行此操作不是一个好主意。更好地进行下一个选择。

  2. 知道数据库的结构后,您就可以按顺序删除数据,这不会违反外键约束。这也可以自动化,但是需要更多的努力。但是,TRUNCE以有效顺序手动编写s非常容易

    无法截断表“购买”,因为它已被FOREIGN KEY约束引用。

    在这种情况下,首先确定要引用哪个表的表Purchases,并在截断之前清除该表中的数据Purchases

    WITH NOCHECK如果您有循环引用,也没有办法删除数据而不删除(或标记)外键。

  3. 您也可以设置级联删除,但是我强烈建议您这样做,因为您有时可以删除不想删除的数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有外键约束的关系数据库如何摄取可能顺序错误的数据?

来自分类Dev

如何使用php pdo从mysql中具有外键约束的数据库中删除数据

来自分类Dev

Rails 3 + rspec + postgres:如何针对具有外键约束的数据库运行测试套件?

来自分类Dev

如何确保所有具有相同外键的行在PostgreSQL数据库中都具有唯一的名称?

来自分类Dev

sqlalchemy:创建关系,但在数据库中没有外键约束?

来自分类Dev

在数据库中找到引用某个主键的所有外键约束

来自分类Dev

在数据库中找到引用某个主键的所有外键约束

来自分类Dev

Django1.5-python2.7-如何显示和更新具有3个外键的数据库

来自分类Dev

来自具有Persistent Haskell的现有数据库的外键

来自分类Dev

来自具有Persistent Haskell的现有数据库的外键

来自分类Dev

PostgreSQL-如何生成具有外键约束的随机数的伪数据行?

来自分类Dev

在子表和父表中都具有外键的数据库表关系

来自分类Dev

MySQL数据库在一个表中具有两个外键

来自分类Dev

合并具有重复主键和外键的数据库

来自分类Dev

如何通过PHP将数据插入数据库,带有外键的表

来自分类Dev

删除mysql数据库中的所有外键

来自分类Dev

数据库设计-通过外键有多少逻辑?

来自分类Dev

没有数据库外键的ORM

来自分类Dev

带有外键的表中的数据库插入

来自分类Dev

如何自动将外键添加到现有的Rails数据库中?

来自分类Dev

如何自动将外键添加到现有的Rails数据库中?

来自分类Dev

如何将组合PK引用为另一个表中的外键,并且仍然具有规范化的数据库?

来自分类Dev

具有不同类型的外键和现有数据库的一对多实体框架

来自分类Dev

如何获得derby数据库中的外键列表

来自分类Dev

教义在MySQL中不生成跨数据库外键约束

来自分类Dev

使用续集和数据库清理程序的外键约束问题

来自分类Dev

Flask-(ProgrammingError)-构建Postgresql数据库时的外键约束

来自分类Dev

将外键约束与现有表一起添加到Visual Studio数据库项目中的数据

来自分类Dev

如何从mongo数据库的集合中获取具有特定键和值的critarea结果?

Related 相关文章

  1. 1

    具有外键约束的关系数据库如何摄取可能顺序错误的数据?

  2. 2

    如何使用php pdo从mysql中具有外键约束的数据库中删除数据

  3. 3

    Rails 3 + rspec + postgres:如何针对具有外键约束的数据库运行测试套件?

  4. 4

    如何确保所有具有相同外键的行在PostgreSQL数据库中都具有唯一的名称?

  5. 5

    sqlalchemy:创建关系,但在数据库中没有外键约束?

  6. 6

    在数据库中找到引用某个主键的所有外键约束

  7. 7

    在数据库中找到引用某个主键的所有外键约束

  8. 8

    Django1.5-python2.7-如何显示和更新具有3个外键的数据库

  9. 9

    来自具有Persistent Haskell的现有数据库的外键

  10. 10

    来自具有Persistent Haskell的现有数据库的外键

  11. 11

    PostgreSQL-如何生成具有外键约束的随机数的伪数据行?

  12. 12

    在子表和父表中都具有外键的数据库表关系

  13. 13

    MySQL数据库在一个表中具有两个外键

  14. 14

    合并具有重复主键和外键的数据库

  15. 15

    如何通过PHP将数据插入数据库,带有外键的表

  16. 16

    删除mysql数据库中的所有外键

  17. 17

    数据库设计-通过外键有多少逻辑?

  18. 18

    没有数据库外键的ORM

  19. 19

    带有外键的表中的数据库插入

  20. 20

    如何自动将外键添加到现有的Rails数据库中?

  21. 21

    如何自动将外键添加到现有的Rails数据库中?

  22. 22

    如何将组合PK引用为另一个表中的外键,并且仍然具有规范化的数据库?

  23. 23

    具有不同类型的外键和现有数据库的一对多实体框架

  24. 24

    如何获得derby数据库中的外键列表

  25. 25

    教义在MySQL中不生成跨数据库外键约束

  26. 26

    使用续集和数据库清理程序的外键约束问题

  27. 27

    Flask-(ProgrammingError)-构建Postgresql数据库时的外键约束

  28. 28

    将外键约束与现有表一起添加到Visual Studio数据库项目中的数据

  29. 29

    如何从mongo数据库的集合中获取具有特定键和值的critarea结果?

热门标签

归档