O componente de acesso dados já disponibiliza recurso para gravação de objetos. E atualmente está em teste a versão com os métodos carregar objetos e listar objetos.
No entanto o método para carregar objetos só carrega propriedades de tipo primitivo do C# (int, string, ...) e para a orientação a objeto isso é uma barreira.
As classes se relacionam e portanto instanciamos objetos dentro de outros objetos. O grande desafio está em controlar essa recursividade nos relacionamentos.
Um forma de controle seria carregar os objetos sob demanda. No entanto isso gera outro problema de performance com o banco de dados qdo precisamos carregar uma lista de objetos.
Por exemplo: Preciso de uma listagem de produtos que me retorne idf, nome e descrição de categoria. O idf e o nome são atributos de tipo primitivo, int e string respectivamente, no entanto a descrição de categoria está em outro objeto, portanto cada produto da listagem vai fazer uma chamada de banco para carregar a sua categoria.
Quem sabe tratar a recursividade em apenas dois niveis seja uma idéia interessante mas também não atende a todos os casos.
Acho que esse assunto pode render e o componente de acesso dados pode reduzir ainda mais os custos de implementação dos objetos.
quarta-feira, 6 de agosto de 2008
Componente de Acesso Dados
Postado por Mega às 19:33
Assinar:
Postar comentários (Atom)
1 comentários:
Bom uma idéia seria manter o retorno da consulta SQL no formato dos objetos.
Segue um exemplo de um cenário onde um objeto carregado deverá ser os dados básicos de uma pessoa e a cidade de nascimento.
Retorno do SQL:
- Pessoa_Idf
- Pessoa_Nome
- Pessoa_Cidade_Idf
- Pessoa_Cidade_Nome
Com base nos itens retornados o objeto poderá ser carregado e também carregar os objetos relacionados (Cidade).
O maior problema desse método é a necessidade de que o banco conheca a estrutura de objetos que ele vai carregar, ou seja, está errado.
[]s
Postar um comentário