Я хочу, чтобы мой метод семя первым очистить/удалить базу данных и избавиться от всех старых данных, однакоКак очистить базу данных с ограничениями внешнего ключа?
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; } }
}
Каскадное удаление сработало, спасибо. Я не пробовал это раньше, потому что это не позволило мне сделать цикл for на DbSet, и я думал, что вы не можете удалить членов запрошенной коллекции в цикле foreach, но я ошибся, по-видимому. Приветствия. – Simeon