Llblgen Cascading Excluir?
-
28-09-2019 - |
Pergunta
Existe alguma maneira fácil de fazer o que parece melhor descrito como uma "exclusão em cascata" no llblgen? Um exemplo do que estou procurando:
Você tem estas mesas:
Customer:
-Id
Order:
-Id
-CustomerId
OrderDetail:
-Id
-OrderId
Agora, quero excluir um cliente específico e todas as coisas que dependem dele (todos os seus pedidos e todos os pedidos de seus pedidos). Como o banco de dados vai se encaixar se eu excluir um cliente antes de excluir os pedidos que têm seu ID como chave estrangeira, preciso praticamente:
- Obtenha o cliente
- Obtenha os pedidos do cliente
- Obtenha o OrderDetails de cada pedidos
- Exclua cada ordem de ordem
- Exclua cada pedido
- Exclua cada cliente
Agora, isso parece uma tarefa bastante comum- eu acho que há algum tipo de função de exclusão (EntityTodelete, bool isrecursive) em algum lugar. De qualquer forma, existe alguma maneira fácil de fazer isso?
Solução
Não, o LLBLGEN PRO não suporta exclusão em cascata. Não construímos isso pelas seguintes razões: - nem sempre é possível fazer exclui em cascata (imagine um modelo em forma de diamante, onde dois / mais caminhos levam de A a b. É também por isso que, por exemplo, o SQLServer nem sempre executa / Permite exclusão de cascata-Na herança alvo-de-entidade, não é possível excluir a cascata.
Apoiamos excluídos em massa diretamente no banco de dados. Portanto, você não precisa buscar todas as entidades para excluir primeiro. Por exemplo, para excluir todos os detalhes do pedido para os pedidos para o cliente, crie uma exclusão direta no OrderDetails, onde você especifica como filtrar um predicado de campo de campo em que você especifica um filtro no pedido com base no cliente em ordem. Em seguida, exclua os pedidos usando o mesmo predicado (sem a junção) e exclua o cliente. Você pode agrupar essas exclusão em uma unidade de trabalho para executá -las em uma transação mais fácil.
Se você ficar preso a isso, poste uma pergunta em nossos fóruns: http://www.llblgen.com/tinyforum . Estamos felizes em ajudá -lo