Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
LazyLoad (Carregando em cascata)
#1
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
Responder
#2
(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.

  Isaque Pinheiro
  Fundador do Projeto ORM Brasil
  ORMBr SAC - Assine e faça parte dessa história ajudando o projeto a crescer.

Responder
#3
(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?
Responder
#4
(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.

  Isaque Pinheiro
  Fundador do Projeto ORM Brasil
  ORMBr SAC - Assine e faça parte dessa história ajudando o projeto a crescer.

Responder
#5
(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.

  Isaque Pinheiro
  Fundador do Projeto ORM Brasil
  ORMBr SAC - Assine e faça parte dessa história ajudando o projeto a crescer.

Responder
#6
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
Responder


Saltar Fórum:


usuários a ver este tópico: 1 Visitante(s)