ORMBr Fórum - Seja bem vindo
LazyLoad (Carregando em cascata) - Versão de Impressão

+- ORMBr Fórum - Seja bem vindo (https://www.ormbr.com.br/forum)
+-- Fórum: Fórum ORMBr - Aberto (https://www.ormbr.com.br/forum/forumdisplay.php?fid=1)
+--- Fórum: Como Usar (https://www.ormbr.com.br/forum/forumdisplay.php?fid=6)
+--- Tópico: LazyLoad (Carregando em cascata) (/showthread.php?tid=55)



LazyLoad (Carregando em cascata) - israelbcoelho - 17-07-2018

Bom dia 


Estou estudando e realizando teste com o Framework e me deparei com um problema que não consegui resolver,
tenho um relacionamento entre tabelas e o Framework  esta carregando os dados em loop por causa do meu relacionamento, vi que existe um 
LazyLoad mais não consegui entender como funciona, segue exemplificado;

Ex:

TFilial (Tabela)
   - Id  : integer
   - UsuarioCadastro : TUsuario;
    

TUsuario(Tabela)
   - Id : Integer;
   - UsuarioCadastro : TUsuario;


Quando executo um TFilial.Find ele instancia a lista para retorno e "UsuarioCadastro" que instancia um novo "UsuarioCadastro" que esta no TUsuario desta forma realizando um efeito cascata, como sair deste loop


RE: LazyLoad (Carregando em cascata) - Isaque Pinheiro - 17-07-2018

(17-07-2018, 07:35 AM)israelbcoelho Escreveu: Bom dia 


Estou estudando e realizando teste com o Framework e me deparei com um problema que não consegui resolver,
tenho um relacionamento entre tabelas e o Framework  esta carregando os dados em loop por causa do meu relacionamento, vi que existe um 
LazyLoad mais não consegui entender como funciona, segue exemplificado;

Ex:

TFilial (Tabela)
   - Id  : integer
   - UsuarioCadastro : TUsuario;
    

TUsuario(Tabela)
   - Id : Integer;
   - UsuarioCadastro : TUsuario;


Quando executo um TFilial.Find ele instancia a lista para retorno e "UsuarioCadastro" que instancia um novo "UsuarioCadastro" que esta no TUsuario desta forma realizando um efeito cascata, como sair deste loop
Existe um exemplo na pasta demo mostrando o uso.


RE: LazyLoad (Carregando em cascata) - Odlawso - 17-07-2018

(17-07-2018, 08:48 AM)Isaque Pinheiro Escreveu:
(17-07-2018, 07:35 AM)israelbcoelho Escreveu: Bom dia 


Estou estudando e realizando teste com o Framework e me deparei com um problema que não consegui resolver,
tenho um relacionamento entre tabelas e o Framework  esta carregando os dados em loop por causa do meu relacionamento, vi que existe um 
LazyLoad mais não consegui entender como funciona, segue exemplificado;

Ex:

TFilial (Tabela)
   - Id  : integer
   - UsuarioCadastro : TUsuario;
    

TUsuario(Tabela)
   - Id : Integer;
   - UsuarioCadastro : TUsuario;


Quando executo um TFilial.Find ele instancia a lista para retorno e "UsuarioCadastro" que instancia um novo "UsuarioCadastro" que esta no TUsuario desta forma realizando um efeito cascata, como sair deste loop
Existe um exemplo na pasta demo mostrando o uso.

Boa tarde,

Estou tendo um problema semelhante que não consegui resolver com o LazyLoad.
Ex.:
Unit uCliente;
interface
uses uConta;
type
TCliente
  Id: Integer
  Conta: TConta
...

Unit uConta;
interface
uses uCliente;
type
TConta
  Id: Integer
  ClientePadrao: TCliente
...

Neste caso, não consegui desatar o nó causado pela referência circular.
Poderia dar uma dica para resolver esse problema?


RE: LazyLoad (Carregando em cascata) - Isaque Pinheiro - 17-07-2018

(17-07-2018, 05:55 PM)Odlawso Escreveu:
(17-07-2018, 08:48 AM)Isaque Pinheiro Escreveu:
(17-07-2018, 07:35 AM)israelbcoelho Escreveu: Bom dia 


Estou estudando e realizando teste com o Framework e me deparei com um problema que não consegui resolver,
tenho um relacionamento entre tabelas e o Framework  esta carregando os dados em loop por causa do meu relacionamento, vi que existe um 
LazyLoad mais não consegui entender como funciona, segue exemplificado;

Ex:

TFilial (Tabela)
   - Id  : integer
   - UsuarioCadastro : TUsuario;
    

TUsuario(Tabela)
   - Id : Integer;
   - UsuarioCadastro : TUsuario;


Quando executo um TFilial.Find ele instancia a lista para retorno e "UsuarioCadastro" que instancia um novo "UsuarioCadastro" que esta no TUsuario desta forma realizando um efeito cascata, como sair deste loop
Existe um exemplo na pasta demo mostrando o uso.

Boa tarde,

Estou tendo um problema semelhante que não consegui resolver com o LazyLoad.
Ex.:
Unit uCliente;
interface
uses uConta;
type
TCliente
  Id: Integer
  Conta: TConta
...

Unit uConta;
interface
uses uCliente;
type
TConta
  Id: Integer
  ClientePadrao: TCliente
...

Neste caso, não consegui desatar o nó causado pela referência circular.
Poderia dar uma dica para resolver esse problema?

A dica é as classes terem interfaces ou classes abstract para resolver.


RE: LazyLoad (Carregando em cascata) - Isaque Pinheiro - 17-07-2018

(17-07-2018, 07:35 AM)israelbcoelho Escreveu: Bom dia 


Estou estudando e realizando teste com o Framework e me deparei com um problema que não consegui resolver,
tenho um relacionamento entre tabelas e o Framework  esta carregando os dados em loop por causa do meu relacionamento, vi que existe um 
LazyLoad mais não consegui entender como funciona, segue exemplificado;

Ex:

TFilial (Tabela)
   - Id  : integer
   - UsuarioCadastro : TUsuario;
    

TUsuario(Tabela)
   - Id : Integer;
   - UsuarioCadastro : TUsuario;


Quando executo um TFilial.Find ele instancia a lista para retorno e "UsuarioCadastro" que instancia um novo "UsuarioCadastro" que esta no TUsuario desta forma realizando um efeito cascata, como sair deste loop

Vc tem essa VAR para que necessidade? Não entendi para que a classe tem ela mesmo como uma VAR para guardar ela propria.


RE: LazyLoad (Carregando em cascata) - israelbcoelho - 19-07-2018

Boa tarde


Consegui resolver o meu problema utilizando Lazy<TUsuario> para todas as "Association" somente assim consegui resolver o problema de referencias circular;

private
Fusuario_3: Lazy< Tusuario > ;

public
[Association(OneToOne,'usuario_id_cadastro','usuario','id', True)]
property usuario: Tusuario read getusuario_3;


Att