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:

  1. Obtenha o cliente
  2. Obtenha os pedidos do cliente
  3. Obtenha o OrderDetails de cada pedidos
  4. Exclua cada ordem de ordem
  5. Exclua cada pedido
  6. 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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top